時間:2024-02-09 10:40作者:下載吧人氣:20
前言
在SQL Server中,如何找到一張表或某個索引擁有那些頁面(page)呢? 有時候,我們在分析和研究(例如,死鎖分析)的時候還真有這樣的需求,那么如何做呢? SQL Server 2012提供了一個無文檔的DMF(sys.dm_db_database_page_allocations
)可以實現我們的需求,sys.dm_db_database_page_allocations
有下面幾個參數:
對于大表而言,如果選擇“DETAILED”參數,則消耗的資源和時間非常長,這個時候非常有必要選擇“LIMITED”參數。
為了更好的理解sys.dm_db_database_page_allocations
輸出的數據,其實我們有必要簡單了解、回顧一下SQL Server中數據存儲的相關知識點。 這就涉及到頁(Page)和區(Extent)的概念了。SQL Server中數據存儲的基本單位是頁,磁盤I/O操作在頁級執行。也就是說,SQL Server讀取或寫入數據的最小單位就是以8 KB為單位的頁。
區是管理空間的基本單位。 一個區是8個物理上連續的頁的集合(64KB),所有頁都存儲在區中。區用來有效地管理頁所有頁都存儲在區中。 SQL Server中有兩種類型的區:
SQL Server中頁也有很多類型,具體參考下面表格。
注意事項:有些Page Type比較少見,暫時有些資料沒有補充完善
網友評論