SQL Server 之 DBCC
--检查索引碎片情况
dbcc showconfig(tablename)
具体例子:
--上图为碎片整理之前
ALTER INDEX ALL on Citation REBUILD
--下图为碎片整理之后
-- Extents Switches: Extents Scanned -1
-- Avg. Pages per Extent: 默认 1区8页,小于8,则有外部碎片
-- Avg. Bytes Free per Page: 正常每页 8000 bytes 左右, 该值越高,说明有内部碎片;或者填充因子过低;
外部:区里面有页没被使用
内部: 页内有剩余空间没被使用
dbcc ind(dbname,tablename,#)
-- #: -1~2
-- IndexID:索引类型ID,0表示堆,1表示聚集索引,2-250表示非聚集索引。可以在sys.indexs上查找
-- Page type: 1 = data page, 2 = index page, 3 = LOB_MIXED_PAGE, 4 = LOB_TREE_PAGE, 10 = IAM page
DBCC TRACEON (3604,302) -- DBCC traceoff(3604,302)
dbcc page (dbname,PageFID,PagePID,#) with tableresults
-- #:0~3
sp_spaceused tablename
-- reserved: data + index_size + unused
-- data: data page * 8k
-- index_size: index page * 8k + IAM page * 8k