社区
MS-SQL Server
帖子详情
如何快速修改 表字段 的属性,前提是这个表里有上千万条数据。
wxylvmnn
2016-12-14 01:40:26
SQL2012
比如,字段A,现在定义是INT,我想给改成NVARCHAR(100)
最普通的做法是执行,
ALTER TABLE 表 ALTER column 字段A NVARCHAR(100);
但是现在的问题是,这个表中有上千万条数据,这么执行的话,速度慢的不行不行的了,刚才执行了近半个小时,没完事,被我强制终了了。
有什么好的方法。。。
...全文
849
6
打赏
收藏
如何快速修改 表字段 的属性,前提是这个表里有上千万条数据。
SQL2012 比如,字段A,现在定义是INT,我想给改成NVARCHAR(100) 最普通的做法是执行, ALTER TABLE 表 ALTER column 字段A NVARCHAR(100); 但是现在的问题是,这个表中有上千万条数据,这么执行的话,速度慢的不行不行的了,刚才执行了近半个小时,没完事,被我强制终了了。 有什么好的方法。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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);
如何使用oracle
修改
表
字段
长度
本文介绍了Oracle
数据
库中如何使用ALTERTABLE语句
修改
表
的
字段
长度,包括单个列和多个列的
修改
方法,并提供了示例代码。强调在
修改
前需备份
数据
库,确保
数据
安全。
MySQL中
表
字段
转Java实体类的
属性
本文介绍了一种利用SQL函数
快速
根据
数据
库
表
字段
生成Java实体类
属性
及注释的方法,适用于阿里开发规范的小写下划线命名规则,通过自定义函数实现下划线转小驼峰命名及
数据
类型映射。
Mybatis
属性
和
数据
库
表
字段
不一致处理
本文介绍了在Mybatis中当实体类
属性
与
数据
库
表
字段
不匹配时的解决办法,包括设置别名和使用单独的resultMap。详细讨论了开发环境配置、项目结构、pom文件、建
表
文件、mapper.xml配置以及测试文件的相关内容。
千万级别
表
字段
修改
的方案
本文针对千万级别
数据
库
表
字段
修改
的锁
表
、资源消耗和
数据
一致性难题,系统分析了四种主流解决方案:基于gh-ost的在线DDL、主从切换、业务扩展新
表
和预留JSON
字段
。重点比较各方案在业务影响、风险控制和适用场景上的差异,提出按架构与需求选型的实践建议。
数据
库
表
字段
比对,
快速
查看不同
数据
源
表
字段
差异
项目中不同
数据
源的
表
结构常变更,手动比对
表
字段
差异耗时。TableGo的
表
字段
比对功能可
快速
比对不同
数据
源
表
字段
差异,还能导出差异文档。文中介绍了单
表
和批量
表
字段
比对的操作步骤,还给出了TableGo的相关链接。
MS-SQL Server
34,875
社区成员
254,639
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章