在本文中,我向我们展示了如何在指定数据库中检查对象的完整性。
"检查完整性意味着"以确保数据库中数据的质量。
DBCC代表数据库控制台命令。
dbcc checkdb执行其他dbcc命令:
- 它在数据库上运行dbcc checkalloc(检查磁盘分配空间)。
- 它在数据库上运行dbcc checktable(检查表和索引视图)。
- 它在数据库上运行dbcc checkcatalog(检查目录一致性)。
这意味着高于三个命令不需要与DBCC CheckDB分开运行。
此命令还检查数据页面和索引页面之间的链接,索引指针和数据页面偏移。
这是检测问题的最佳方式。
dbcc checkdb命令语法
DBCC CHECKDB ( 'database_name' | database_id | 0 [ , NOINDEX | { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ] ) [ WITH { [ ALL_ERRORMSGS ] [ , [ NO_INFOMSGS ] ] [ , [ TABLOCK ] ] [ , [ ESTIMATEONLY ] ] [ , [ PHYSICAL_ONLY ] ] [ , [ DATA_PURITY ] ] } ]
其中
'database_name'| database_id | 0是包含三个选项的第一个参数:数据库名称,database_id和0. database_name是数据库的名称,database_id是数据库的ID,0表示当前数据库。
我们可以选择三种选项之一。
noindex如果选择了此选项,则会跳过非群集索引的检查。
REPAIR_ALLOW_DATA_LOSS |REPAIR_FAST | REPAIR_REBUILD在此参数修复程序中,修复所有报告的错误带有丢失数据的风险,维修_fast用于维护向后兼容性,维修_ReBuild执行所有维修,而不会丢失数据。
all_errormsgs显示所有错误消息(前200错误)。
no_infomsgs显示信息邮件。
tablock获取锁而不是内部数据库快照。
estisiononly提供TempdB所需的估计空间。
photical_only跳过逻辑检查,并仅检查物理问题。
data_purity检查无效或者超出范围的列。
让我们看看dbcc checkdb命令如何工作,假设我想检查名为'person'的数据库的完整性。
执行以下代码:
dbcc checkdb('person')
这将返回以下结果,以便在数据库中评估的数据库对象的详细信息,如行,页面和错误。
checkdb found 0 allocation errors and 0 consistency errors in database person