我想在一个大约10M行的sql Server表中添加一列.我认为这个查询最终会完成添加我想要的列:
alter table T add mycol bit not null default 0
但它已经持续了好几个小时了.是否有任何快捷方式可以将“not null default 0”列插入大表中?或者这本来就很慢?
解决方法
根据您的行大小,表大小,索引等,我已经看到sql Server 2000在最终完成之前会磨掉几个小时(4-5个小时).
你现在能做的最糟糕的事情是“恐慌”并且很难杀死这件事.让它自己运行.
在将来,您可能希望尝试做Farseeker提到的并创建第二个(空)结构并以这种方式复制您的记录.
>表格行越长,需要的时间越长.
>您在该表上拥有的索引越多,所需的时间就越长.
>如果添加默认值(您所做的),则需要更长时间.
>如果您在服务器上使用频繁,则需要更长时间.
>如果您没有锁定该数据库或将其置于单用户模式,则需要更长时间.
当我不得不做这样丑陋的事情时,我试着在晚上做…就像凌晨2点没人在上面(并且维护不在服务器上运行).
祝好运! 原文链接:https://www.f2er.com/mssql/81096.html