在特定位置添加列与在数据表末尾添加列

时间:2015-06-10 19:52:49

标签: sql-server performance

在SQL Server中,在表的末尾添加一个新列比在特定位置添加它更快吗?

我必须在已经有250列和大约2M记录的表中添加20个新列。新列为null,float列。添加单列花了我超过10分钟。我正在寻找任何方法来加快这个过程。

2 个答案:

答案 0 :(得分:2)

你在用吗?: ALTER TABLE table_name ADD column_name datatype

或者您使用的是SSMS设计师吗? SSMS设计人员可以删除并重新创建表(创建临时表以暂时保存数据) - 这可能是它花费更长时间的原因。

答案 1 :(得分:2)

如果您正在使用SSMS,您应该知道,它正在创建一个包含新列的新表,然后从原始表中插入数据,重做所有键和约束,删除旧表,然后重命名新表使用旧表的名称。

最好在最后添加行,然后按照要检索的顺序使用T-SQL。

另外请注意,如果您没有锁定数据库或者没有将其置于单用户模式,则运行时间会更长。

tl; dr - 除非您有时间浪费,否则不要在特定位置添加列