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

sql-server – 在巨大的表上创建聚簇索引的无痛方法?

发布时间:2020-12-12 06:20:57 所属栏目:MsSql教程 来源:网络整理
导读:因此,我们有一个客户网站抱怨性能严重缓慢.我看了一眼很明显,问题是因为Somebody Else(grrrr)设计了一个表,其中包含大约2000万条记录而没有聚集索引. 现在我想在该表上创建一个聚簇索引 – 但是在我的测试环境中,我的create index命令已经运行了一个小时,但仍
因此,我们有一个客户网站抱怨性能严重缓慢.我看了一眼很明显,问题是因为Somebody Else(grrrr)设计了一个表,其中包含大约2000万条记录而没有聚集索引.

现在我想在该表上创建一个聚簇索引 – 但是在我的测试环境中,我的create index命令已经运行了一个小时,但仍然没有完成.客户站点是一个全天候工作的车间,在创建索引时无法承受一小时的停机时间.

是否有一些较少的暴力创建索引的方法,既可以快速完成工作,也可以以一种聪明的方式进行,在繁忙时不会完全破坏服务器的性能?

我们正在使用SQL Server企业版.

解决方法

>如果您的SQL Server是Enterprise Edition且表没有任何BLOB字段 – CREATE CLUSTERED INDEX … WITH(ONLINE = ON) >如果不是 – 除了创建具有相同模式的表并且明智地向其传输数据之外没有任何方法,包括所有INSERT / UPDATE / DELETE操作(例如,使用触发器),然后准确地删除旧表和将new重命名为旧名称 – 缺点是:slow,为服务器和存储添加额外负载

(编辑:李大同)

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

    推荐文章
      热点阅读