SQL Server :DBCC 命令
DBCC 命令用于验证数据库完整性、查找错误和分析系统使用情况等。
一、语法
DBCC 命令需要使用子命令
1.DBCC CHECKALLOC 检查指定数据库的磁盘空间分配结构一致性
如:DBCC CHECKALLOC('Northwind')
输出结果:
Northwind的 DBCC 结果。
***************************************************************
表 sys.sysrscols 对象 ID 3。
索引 ID 1,分区 ID 196608,分配单元 ID 196608 (类型为 In-row data)。FirstIAM (1:157)。Root (1:158)。Dpages 16。
索引 ID 1,分区 ID 196608,分配单元 ID 196608 (类型为 In-row data)。使用了 2 个专用区中的 18 页。
总区数为 2。
***************************************************************
表 sys.sysrowsets 对象 ID 5。
索引 ID 1,分区 ID 327680,分配单元 ID 327680 (类型为 In-row data)。FirstIAM (1:131)。Root (1:160)。Dpages 2。
索引 ID 1,分区 ID 327680,分配单元 ID 327680 (类型为 In-row data)。使用了 0 个专用区中的 5 页。
总区数为 0。
***************************************************************
... ...
... ...
... ...
2.DBCC SHOWCONTIG 显示指定表的数据和索引的碎片信息。
如:
USE Northwind
GO
DECLARE @id int, @indid int
SET @id = OBJECT_ID('Employees')
SELECT @indid = indid
FROM sysindexes
WHERE id = @id
AND name = 'lastname'
DBCC SHOWCONTIG (@id , @indid)
GO
输出如下
DBCC SHOWCONTIG 正在扫描 'Employees' 表...
表: 'Employees' (901578250);索引 ID: 2,数据库 ID: 6
已执行 LEAF 级别的扫描。
- 扫描页数................................: 1
- 扫描区数..............................: 1
- 区切换次数..............................: 0
- 每个区的平均页数........................: 1.0
- 扫描密度 [最佳计数:实际计数].......: 100.00% [1:1]
- 逻辑扫描碎片 ..................: 0.00%
- 区扫描碎片 ..................: 0.00%
- 每页的平均可用字节数.....................: 7842.0
- 平均页密度(满).....................: 3.11%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。