SqlServer索引優化 查看碎片情況


本文引自 DBCC DBREINDEX重建索引提高SQL Server性能

查看碎片情況使用  dbcc showcontig 函數來進行

代碼:

--改成當前庫
use DB_Name
--創建變量 指定要查看的表
declare @table_id int
set @table_id=object_id('TableName')
--執行
dbcc showcontig(@table_id)

返回結果:

上邊實例的表比較大..一張表占用的實際物理空間就有24個G(數據20G+  索引2G+ )..

以下是名詞解釋:

DBCC SHOWCONTIG是顯示指定的表的數據和索引的碎片信息。

解釋如下:

Page Scanned-掃描頁數:如果你知道行的近似尺寸和表或索引里的行數,那么你可以估計出索引里的頁數。看看掃描頁數,如果明顯比你估計的頁數要高,說明存在內部碎片。 

Extents Scanned-掃描擴展盤區數:用掃描頁數除以8,四舍五入到下一個最高值。該值應該和DBCC SHOWCONTIG返回的掃描擴展盤區數一致。如果DBCC SHOWCONTIG返回的數高,說明存在外部碎片。碎片的嚴重程度依賴於剛才顯示的值比估計值高多少。 

Extent Switches-擴展盤區開關數:該數應該等於掃描擴展盤區數減1。高了則說明有外部碎片。 

Avg. Pages per Extent-每個擴展盤區上的平均頁數:該數是掃描頁數除以掃描擴展盤區數,一般是8。小於8說明有外部碎片。 

Scan Density [Best Count:Actual Count]-掃描密度[最佳值:實際值]:DBCC SHOWCONTIG返回最有用的一個百分比。這是擴展盤區的最佳值和實際值的比率。該百分比應該盡可能靠近100%。低了則說明有外部碎片。

Logical Scan Fragmentation-邏輯掃描碎片:無序頁的百分比。該百分比應該在0%到10%之間,高了則說明有外部碎片。 

Extent Scan Fragmentation-擴展盤區掃描碎片:無序擴展盤區在掃描索引葉級頁中所占的百分比。該百分比應該是0%,高了則說明有外部碎片。 

Avg. Bytes Free per Page-每頁上的平均可用字節數:所掃描的頁上的平均可用字節數。越高說明有內部碎片,不過在你用這個數字決定是否有內部碎片之前,應該考慮fill factor(填充因子)。 

Avg. Page Density (full)-平均頁密度(完整):每頁上的平均可用字節數的百分比的相反數。低的百分比說明有內部碎片

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM