检查SQL Server 2008中对象的完整性

在本文中,我向我们展示了如何在指定数据库中检查对象的完整性。
"检查完整性意味着"以确保数据库中数据的质量。
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
日期:2020-06-02 22:17:41 来源:oir作者:oir