SQL Server誤區(qū)30日談 第29天 有關堆碎片的誤區(qū)
更新時間:2013年01月09日 22:12:10 投稿:mdxy-dxy
對堆建聚集索引再DROP在我看來是除了收縮數據庫之外最2的事了
誤區(qū) #29:可以通過對堆建聚集索引再DROP后進行堆上的碎片整理
Nooooooooooooo!!!
- 如果非聚集索引所在的表是堆,那么這個鏈接就是一個RID。
- 如果非聚集索引所在的表是聚集索引,那么這個鏈接就是聚集索引鍵。
如果你希望對此有更多了解,請看文章底部的鏈接。
因此不難看出,如果你希望將堆變?yōu)榫奂饕?,那么非聚集索引的所有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優(yōu)化 or 查詢速度
一個老項目,加載列表奇慢,超過10秒鐘, 主要涉及兩個表, user表,procuts表。因為涉及多層代理,使用site字段保存目錄2020-09-09

