Sql-Server
索引重建是否減少了從磁碟的物理讀取
最近我使用 Ola Hallengreen 腳本重建了 99% 碎片化的索引。重建後,我注意到物理讀取減少了很多。這與 Index Rebuilt 有什麼關係?
重建索引後,它的頁面更有可能立即記憶體在記憶體中。
考慮這種情況:
- 您的伺服器執行著各種各樣的查詢,並且各種各樣的表都記憶體在記憶體中
- 您執行一個查詢特定表的查詢 - 例如,表中的 COUNT(*) - 並且它的所有頁面都沒有記憶體在記憶體中。您的查詢會進行大量物理讀取以將該數據放入記憶體中。
- 你重建它的索引。
- 您再次執行查詢 - 但這一次,它的頁面現在記憶體在記憶體中。您會在該查詢上看到較少的物理讀取。
這是您不想使用物理讀取來衡量性能調整工作是否成功的原因之一。從使用邏輯讀取開始。(哎呀,你可以完全跳過第 3 步,你仍然會看到更少的物理讀取 - 但這並不意味著你應該執行每個查詢兩次以減少物理讀取。)