DBCC命令用于数据校验

以下信息摘自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%表示有部分碎片存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值