社区
MS-SQL Server
帖子详情
如何快速修改 表字段 的属性,前提是这个表里有上千万条数据。
wxylvmnn
2016-12-14 01:40:26
SQL2012
比如,字段A,现在定义是INT,我想给改成NVARCHAR(100)
最普通的做法是执行,
ALTER TABLE 表 ALTER column 字段A NVARCHAR(100);
但是现在的问题是,这个表中有上千万条数据,这么执行的话,速度慢的不行不行的了,刚才执行了近半个小时,没完事,被我强制终了了。
有什么好的方法。。。
...全文
754
6
打赏
收藏
如何快速修改 表字段 的属性,前提是这个表里有上千万条数据。
SQL2012 比如,字段A,现在定义是INT,我想给改成NVARCHAR(100) 最普通的做法是执行, ALTER TABLE 表 ALTER column 字段A NVARCHAR(100); 但是现在的问题是,这个表中有上千万条数据,这么执行的话,速度慢的不行不行的了,刚才执行了近半个小时,没完事,被我强制终了了。 有什么好的方法。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
卖水果的net
版主
2016-12-14
打赏
举报
回复
增加一列,批量更过来,比如每次 1000 行; 再清空原来的列,再修改类型,再批量更新来,最后删除刚才的表; PS:如是原来的列上有索引(主键),要先删除索引(主键),并且注意非空约束;
足球不是方的
2016-12-14
打赏
举报
回复
如果只是修改1列或者2列,可以增加1,2列,类型是需要改动的类型,把相应列的数据更新到此列,可以做个触发器,最后删除以前的列,吧新增的列改成以前列的列名
闭包客
2016-12-14
打赏
举报
回复
在数据量大的数据库里面执行耗时长的事务时,有一种分割成若干小事务的做法。 比如你在现有表的基础上创建一个新表,把列改成 NVARCHAR(100) 然后把数据以一万条为一个事务导入进去,这样即使某个事务意外中断,以后还可以接着以前的进度继续导入。 在数据完全导入完毕之后,把旧表改名,新表使用旧表的名称。
LongRui888
2016-12-14
打赏
举报
回复
建议还是在业务比较空闲时,特别是晚上操作吧,最好是停服维护时执行。 这个说白了这个就类似于一个update语句,更新几千万的数据,加上类型要变化,速度会比update 几千万数据更慢一些。
LongRui888
2016-12-14
打赏
举报
回复
在修改字段类型时,会检查每一列的值,进行类型转换,把值改为 字符串的值,而且会加上sch-m锁,防止其他会话来修改。 加上你的数据量非常大,所以速度非常慢。 首先,建议在alter 语句后面加上online,其次,别在现在改,最多也就是在晚上维护期间让运维改一下。 还有个办法就是,创建一张新表,把字段改为varchar,然后把原始表的数据导入到新的表里,最后把原始表truncate,把新表的表名改成原始表。 为了防止在这个期间有数据修改,可以先锁定整张表,方式表被修改。
学海无涯-回头是岸
2016-12-14
打赏
举报
回复
update T1 SET A=CAST(A AS NVARCHAR(100)) 再 ALTER TABLE 表 ALTER column 字段A NVARCHAR(100);
[MySQL]
数据
类型以及
表
的
属性
与操作大全
该内容围绕 MySQL
数据
库操作展开,涵盖
表
操作、
数据
类型和
表
的约束...
表
的约束涉及空
属性
、默认值等多个方面,讲解了主键、自增长、唯一键和外键的设置与删除等内容,为构建规范、高效的
数据
库
表
结构提供了全面指导。
动态增加
数据
库
表
字段
动态增加
数据
库
表
字段
预留足够的空白
字段
,运行时作动态影射 用xml格式保存在单
字段
里 改列为行,用另外一个
表
存放定制
字段
【一】 现在我们来分析一下四种技术的优劣,不过首先可以排除的是第一点动态...
mysql
数据
表
字段
繁体转简体_大
数据
分析工程师入门4SQL进阶
上篇《大
数据
分析工程师入门3--SQL...主要讲解MySQL中针对库、
表
、
表
字段
的创建、
修改
和删除等相关操作。第2部分:索引。内容包括为何要建立索引,如何建立不同的索引,索引的查看和删除,以及索引的注意事项和建立...
SQL多
表
多
字段
比对方法
文章目录
表
-
表
比较整体思路找出...条数相同是
前提
,然后比较
字段
值才有意义 两
表
字段
值完全相同【两
表
所有
字段
的值相同】 两
表
所有
字段
union后,条数与另一张
表
条数一样 两
表
字段
值部分相同【两
表
部分
字段
的值相
MySQL单
表
数据
量过千万,采坑优化记录,完美解决方案
使用阿里云rds for MySQL
数据
库(就是MySQL5.6版本),有个用户上网记录
表
6个月的
数据
量近2000万,保留最近一年的
数据
量达到4000万,查询速度极慢,日常卡死。严重影响业务。 问题
前提
:老系统,当时设计系统的人...
MS-SQL Server
34,871
社区成员
254,637
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章