以下信息摘自Microsoft SQL Server 2000 Unleased.
CHECKALLOC
- CHECKCATALOG
- CHECKDB
- CHECKFILEGROUP
- CHECKIDENT
- CHECKTABLE
- DBREINDEX
- SHOWCONTIG
- UPDATEUSAGE
1. CHECKALLOC
语法:
DBCC CHECKALLOC
( 'database_name'
[, NOINDEX
|
{ REPAIR_ALLOW_DATA_LOSS
| REPAIR_FAST
| REPAIR_REBUILD
}]
) [WITH {ALL_ERRORMSGS | NO_INFOMSGS}]
说明:
检查数据页面分配的正确性。
下表是对Repair选项的描述:
表1:
选项 |
描述 |
REPAIR_ALLOW_DATA_LOSS |
此项用于移除损坏的数据并尽可能修复结构错误,此选项有可能导致数据丢失,可以是事务的一部分(必要时可以回滚),下面是一示例: /* 单用户模式*/ sp_dboption pubs,'single user',true go begin transaction go dbcc checkdb(pubs, REPAIR_ALLOW_DATA_LOSS) with NO_INFOMSGS Go 执行CHECKDB命令后,可以提交事务,也可以回滚事务,下面是提交和回滚事务的逻辑: /* 提交事务 */ Commit transaction /* 回滚事务 */ Rollback transaction 最后,将数据库置为多用户模式。 Sp_dboption pubs,’single user’,false Go |
REPAIR_FAST |
此选项修复简单的错误如:包含额外数据列的非聚集索引。不会导致数据丢失。 |
REPAIR_REBUILD |
此选项重建数据库所有索引,由于重建是非常耗时的任务,主要取决于数据库大小,索引数目,错误数等因素。不会导致数据丢失。 |
2.CHECKCATALOG
语法:
DBCC CHECKCATALOG [(database_name)] [WITH NO_INFOMSGS]
说明:
此命令检查系统表的一致性,并分析系统表。
3.CHECKDB
语法:
DBCC CHECKDB
( 'database_name'
[, NOINDEX
| { REPAIR_ALLOW_DATA_LOSS
| REPAIR_FAST
| REPAIR_REBUILD
}]
) [WITH {ALL_ERRORMSGS | NO_INFOMSGS }]
说明:
此命令检查数据库中所有表和索引的指针和数据页错误等信息,数据页和索引页是否正常链接,索引排序是否匹配。
注意:
CHECKDB需要对数据库中所有表和索引放置共享锁,因此,此命令运行时,不能创建所有数据库对象如表、索引、视图、存储过程、默认约束,用户自定义类型、用户、角色或权限。
3.CHECKFILEGROUP
语法:
DBCC CHECKFILEGROUP
( [{'filegroup' | filegroup_id}] [, NOINDEX]
) [WITH {ALL_ERRORMSGS | NO_INFOMSGS}]
说明:
检查位于文件组中的表、索引的完整性
4.CHECKIDENT
语法:
DBCC CHECKIDENT [(table_name)] [, { NORESEED | {RESEED [, new_reseed_value] } } ] )
说明:
此命令检查表中IDENTITY数据列值的正确性,也适用于修改identity值。
5.CHECKTABLE
语法:
DBCC CHECKTABLE
( 'table_name'
[, NOINDEX
| index_id
| { REPAIR_ALLOW_DATA_LOSS
| REPAIR_FAST
| REPAIR_REBUILD
}]
) [WITH {ALL_ERRORMSGS | NO_INFOMSGS}]
说明:
此命令检查所有数据页和索引页的指针正确性,有关参数描述详见表1。
6.DBREINDEX
语法:
DBCC DBREINDEX (['database.owner.table_name' [, index_name
[, fillfactor ]]])
[WITH NO_INFOMSGS]
说明:
用于重建表的索引,也常用于主键或唯一约束的重建。
7.SHOWCONTIG
语法:
DBCC SHOWCONTIG (table_id, [index_id])
说明:
检查表碎片程度,大量碎片将降低查询性能。判断碎片的程度,可通过察看扫描密度信息,此数小于100%表示有部分碎片存在。