Sql-Server
我認為 sys.dm_db_index_physical_stats 的 SQL 文件是錯誤的
然後進入index_level列說明:
僅當 mode = DETAILED 時才處理非葉級索引。
現在轉到掃描模式部分:
LIMITED 模式是最快的模式,掃描的頁面數量最少。對於索引,只掃描 B 樹的父級頁面(即葉級以上的頁面)。對於堆,檢查關聯的 PFS 和 IAM 頁,並以 LIMITED 模式掃描堆的數據頁。
在 LIMITED 模式下,compressed_page_count 為 NULL,因為數據庫引擎僅掃描 B 樹的非葉頁以及堆的 IAM 和 PFS 頁。
掃描模式部分是錯誤的,對吧?受限模式僅掃描葉頁。讓我知道你的想法。在將其發佈到適當的渠道之前,我想與社區核實。
我認為這些文件是正確的。LIMITED 模式使用與預讀相同的機制。它利用了這樣一個事實,即所有父級/非葉級頁面都包含一個(指向)葉級所有頁面的列表(指針)。這就是為什麼它可以使用這些頁面 ID 來確定頁面是否處於相同的邏輯順序和物理順序。順便說一句,所有其他掃描模式也會先執行 LIMITED 模式掃描以查找邏輯碎片。
不,一切都按預期工作。
在
LIMITED
模式下,父級頁面被掃描,你得到一行index_level
= 0。在
DETAILED
模式下,所有頁面都被掃描,您會得到幾行(通常是 3 或 4)行,它們具有不同的值index_level
,隨後是有關該特定級別頁面的資訊。-丹尼斯·魯巴甚金