加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如何加速在Sql Server中向大表添加列

发布时间:2020-12-12 16:54:24 所属栏目:MsSql教程 来源:网络整理
导读:我想在一个大约10M行的Sql Server表中添加一列.我认为这个查询最终会完成添加我想要的列: alter table Tadd mycol bit not null default 0 但它已经持续了好几个小时了.是否有任何快捷方式可以将“not null default 0”列插入大表中?或者这本来就很慢? 这
我想在一个大约10M行的Sql Server表中添加一列.我认为这个查询最终会完成添加我想要的列:
alter table T
add mycol bit not null default 0

但它已经持续了好几个小时了.是否有任何快捷方式可以将“not null default 0”列插入大表中?或者这本来就很慢?

这是Sql Server 2000.稍后我必须在Sql Server 2008上做类似的事情.

解决方法

根据您的行大小,表大小,索引等,我已经看到SQL Server 2000在最终完成之前会磨掉几个小时(4-5个小时).

你现在能做的最糟糕的事情是“恐慌”并且很难杀死这件事.让它自己运行.

在将来,您可能希望尝试做Farseeker提到的并创建第二个(空)结构并以这种方式复制您的记录.

>表格行越长,需要的时间越长.
>您在该表上拥有的索引越多,所需的时间就越长.
>如果添加默认值(您所做的),则需要更长时间.
>如果您在服务器上使用频繁,则需要更长时间.
>如果您没有锁定该数据库或将其置于单用户模式,则需要更长时间.

当我不得不做这样丑陋的事情时,我试着在晚上做…就像凌晨2点没人在上面(并且维护不在服务器上运行).

祝好运!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读