现在有张大概10亿记录 将近100G 表,有时候要修改表结构,例如修改字段类型,长度, 增加新的字段。
在数据库设计的时候,我们可以预留几个字段 以防后面新增加字段需求,但是对于修改字段长度,类型,有下面几个问题:
1 Alter table alter column 每次只能修改一个字段,如果修改多个字段?
2 Alter table 原理是什么?
像MYSQL 大致是先复制到临时表,删除原表,然后重命名, SQL Server呢?
3 对于生产库 上的 DDL 操作,有什么好的优化方式 ?
------解决方案--------------------
这个目前在sql server上,我觉得最好的办法,还是测试优先。在实际使用中的其它方法,都会有这样那样的问题。测试优先,可以让问题在扩大化之前,进行有效解决。 对应实际的生产环境的影响也较小。
这里的测试,不仅仅是测试库中的完整测试,也包括在运行环境下的先导测试。
参考!
------解决方案--------------------
1 Alter table alter column 每次只能修改一个字段,如果修改多个字段?
--> 修改多个字段时需多写几个alter table alter column语句..
2 Alter table 原理是什么?
像MYSQL 大致是先复制到临时表,删除原表,然后重命名, SQL Server呢?
--> SQL Server的alter table语句包含很多功能,如新增字段,修改字段数据类型,长度,修改表约束等.
其执行原理各不相同.
3 对于生产库 上的 DDL 操作,有什么好的优化方式 ?
--> 在系统闲时执行.