SQL Server误区30日谈 第29天 有关堆碎片的误区
更新时间:2013年01月09日 22:12:10 投稿:mdxy-dxy
对堆建聚集索引再DROP在我看来是除了收缩数据库之外最2的事了
误区 #29:可以通过对堆建聚集索引再DROP后进行堆上的碎片整理
Nooooooooooooo!!!
- 如果非聚集索引所在的表是堆,那么这个链接就是一个RID。
- 如果非聚集索引所在的表是聚集索引,那么这个链接就是聚集索引键。
如果你希望对此有更多了解,请看文章底部的链接。
因此不难看出,如果你希望将堆变为聚集索引,那么非聚集索引的所有RID就失效了,因此所有的非聚集索引都需要被重建。同样,如果删除聚集索引键,那么所有非聚集索引上存储的聚集索引键都会失效,因此也需要重建所有的非聚集索引。
简单点说,如果你建立再删除聚集索引后,所有的非聚集索引都会被重建两次。
如果你使用SQL Server 2008的ALTER TABLE ... REBUILD来整理堆碎片,那么同样也需要重建所有的非聚集索引,因为所有的RID都会变动。
那么,如果对于“重建”聚集索引呢?这取决于SQL Server的版本以及你是进行rebuild索引
相关文章
Microsoft SQL Server 2012 数据库安装图解教程
这篇文章主要为大家介绍下Microsoft SQL Server 2012 数据库安装教程,需要的朋友可以参考下2013-11-11
sql server使用临时存储过程实现使用参数添加文件组脚本复用
这篇文章主要介绍了sql server通过临时存储过程实现使用参数添加文件组脚本复用,需要的朋友可以参考下2019-12-12
SQL Server 使用join all优化 or 查询速度
一个老项目,加载列表奇慢,超过10秒钟, 主要涉及两个表, user表,procuts表。因为涉及多层代理,使用site字段保存目录2020-09-09


最新评论