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