我從SQL Server 2005數據庫中的表中刪除聚簇索引,並且運行需要很長時間。SQL Server 2005聚簇索引刪除運行時間很長,沒有非聚簇索引存在
我做了一些研究,並確定刪除聚集索引可能需要很長時間,因爲它正在更新非聚集索引中的指針,而是引用表本身的RowID,但在此特定情況下,不存在非聚集索引索引出現在桌面上。
數據庫中有很多外鍵,所以有可能它們中的一個可能引用了聚集索引ID。
有什麼辦法可以確定什麼對象使用聚集索引引用而不是RowID?
我從SQL Server 2005數據庫中的表中刪除聚簇索引,並且運行需要很長時間。SQL Server 2005聚簇索引刪除運行時間很長,沒有非聚簇索引存在
我做了一些研究,並確定刪除聚集索引可能需要很長時間,因爲它正在更新非聚集索引中的指針,而是引用表本身的RowID,但在此特定情況下,不存在非聚集索引索引出現在桌面上。
數據庫中有很多外鍵,所以有可能它們中的一個可能引用了聚集索引ID。
有什麼辦法可以確定什麼對象使用聚集索引引用而不是RowID?
如果有一個聚集索引,一切都使用的是不是一個RowID
- 聚簇索引鍵IS行標識符。
所以答案是,任何引用該表的東西。
查看外鍵約束的一種簡單直觀的方法是將表添加到圖中。然後你可以看到關係,並檢查是否有指向聚集索引。
但是,您丟棄最有可能是主鍵的聚集索引的原因是什麼?
該表已分區,聚簇索引未在分區上創建,因此需要重新設計索引。由於所涉及的表格非常大,我正試圖確定是否有任何簡單的方法來加速操作。 – David
有什麼辦法可以獲得這些對象的列表嗎? – David
@David - 你可以看看'sys.sysdepends'來檢查依賴關係。 – JNK
我查看了sysdepends,並且存在一個存儲過程引用表中的聚集索引的表。 – David