http://msdn.microsoft.com/zh-cn/library/ms188796.aspx

Transact-SQL 编程语言提供 DBCC 语句以作为 SQL Server 的数据库控制台命令。

数据库控制台命令语句可分为以下类别。

 

命令类别

执行

维护

对数据库、索引或文件组进行维护的任务。

杂项

杂项任务,如启用跟踪标志或从内存中删除 DLL。

信息

收集并显示各种类型信息的任务。

验证

对数据库、表、索引、目录、文件组或数据库页的分配进行的验证操作。

DBCC 命令使用输入参数并返回值。 所有 DBCC 命令参数都可以接受 Unicode 和 DBCS 文字。

以下 DBCC 命令对 数据库引擎 创建的内部只读数据库快照执行操作。 这样可以防止在执行这些命令时出现阻塞和并发问题。 有关详细信息,请参阅数据库快照 (SQL Server)

 

DBCC CHECKALLOC

DBCC CHECKDB

DBCC CHECKCATALOG

DBCC CHECKFILEGROUP

DBCC CHECKTABLE

 

在执行这些 DBCC 命令之一时,数据库引擎创建一个数据库快照,并将其置于在事务上一致的状态。 然后,DBCC 命令对该快照运行检查。 DBCC 命令完成后,将删除该快照。

有时,不需要内部数据库快照或无法创建内部数据库快照。 出现这种情况时,将针对实际数据库执行 DBCC 命令。 如果数据库联机,DBCC 命令使用表锁确保它所检查的对象的一致性。 该行为与指定 WITH TABLOCK 选项时的行为相同。

执行 DBCC 命令时,不创建内部数据库快照:

  • 针对 master,并且 SQL Server 的实例以单用户模式运行。

  • 针对 master 之外的其他数据库,但已使用 ALTER DATABASE 语句将该数据库置于单用户模式。

  • 针对只读数据库。

  • 针对已使用 ALTER DATABASE 语句设置为紧急模式的数据库。

  • 针对 tempdb。 在这种情况下,由于内部限制不能创建数据库快照。

  • 使用 WITH TABLOCK 选项。 在这种情况下,DBCC 允许该请求但不创建数据库快照。

当针对以下对象执行 DBCC 命令时,该命令将使用表锁而不是内部数据库快照:

  • 只读文件组

  • FAT 文件系统

  • 不支持“命名流”的卷

  • 不支持“备用流”的卷

注意

尝试使用 WITH TABLOCK 选项运行 DBCC CHECKALLOC 或 DBCC CHECKDB 的等价部分时,需要使用数据库 X 锁。 该数据库锁不能对 tempdbmaster 设置,对其他所有数据库进行设置时也可能会失败。

注意

如果无法创建内部数据库快照,则对 master 运行 DBCC CHECKDB 时将失败。

sys.dm_exec_requests 目录视图包含有关 DBCC CHECKDB、CHECKFILEGROUP 和 CHECKTABLE 命令的进度和当前执行阶段的信息。 percent_complete 列指示命令完成的百分比,command 列报告命令执行的当前阶段。

进度单位的定义取决于 DBCC 命令的当前执行阶段。 有时,根据数据库页的粒度报告进度,而在其他阶段,则根据单个数据库或分配修复的粒度报告进度。 下表对每个执行阶段以及命令报告进度的粒度进行了说明。

 

执行阶段

说明

进度报告粒度

DBCC TABLE CHECK

在该阶段中将检查数据库中对象的逻辑和物理一致性。

在数据库页级别报告进度。

每检查 1000 个数据库页更新进程报告值一次。

DBCC TABLE REPAIR

如果指定 REPAIR_FAST、REPAIR_REBUILD 或 REPAIR_ALLOW_DATA_LOSS 并且存在必须修复的对象错误,则在该阶段执行数据库修复。

在单个修复级别报告进度。

每次完成修复时更新计数器。

DBCC ALLOC CHECK

在该阶段中将检查数据库中的分配结构。

注意 DBCC CHECKALLOC 执行相同检查。

 

不报告进度。

DBCC ALLOC REPAIR

如果指定 REPAIR_FAST、REPAIR_REBUILD 或 REPAIR_ALLOW_DATA_LOSS 并且存在必须修复的分配错误,则在该阶段执行数据库修复。

不报告进度。

DBCC SYS CHECK

在该阶段中将检查数据库系统表。

在数据库页级别报告进度。

每检查 1000 个数据库页更新进程报告值一次。

DBCC SYS REPAIR

如果指定 REPAIR_FAST、REPAIR_REBUILD 或 REPAIR_ALLOW_DATA_LOSS 并且存在必须修复的系统表错误,则在该阶段执行数据库修复。

在单个修复级别报告进度。

每次完成修复时更新计数器。

DBCC SSB CHECK

在该阶段中将检查 SQL Server Service Broker 对象。

注意 执行 DBCC CHECKTABLE 时,不执行此阶段。

 

不报告进度。

DBCC CHECKCATALOG

在该阶段中将检查数据库目录的一致性。

注意 执行 DBCC CHECKTABLE 时,不执行此阶段。

 

不报告进度。

DBCC IVIEW CHECK

在该阶段中将检查数据库中存在的任何索引视图的逻辑一致性。

在被检查的单个数据库视图级别报告进度。

 

[转]DBCC (Transact-SQL)的更多相关文章

  1. 2009-04-19 22:40 SQL SERVER游标的讲解

    游标和游标的优点 在数据库中,游标是一个十分重要的概念.游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结 果集中每次提取一条记录的机制.游标总 ...

  2. 非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry 大牛

    非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry 大牛 Glenn Berry 大牛会对这个脚本持续更新 -- SQL Server 2012 Diagnost ...

  3. T-SQL、JET SQL、PL-SQL

    数据库分为网状.层状.关系.对象四种类型,目前的数据库一般都是属于关系数据库(包括MYSQL和SQL SERVER),网状.层状基本上已成历史,对象类型尚未普及. SQL 语言是有 ANSI 标准的. ...

  4. SQL SERVER 简介及应用 - 数据库系统原理

    SQL SERVER 是一个分布式的关系型数据库管理系统(RDBMS),具有客户 - 服务器体系结构,一般发行的版本有企业版.标准版.个人版.开发版. SQL SERVER 提供的服务 MS SQL ...

  5. SQL Server中的锁 详解 nolock,rowlock,tablock,xlock,paglock

    摘自: http://www.myexception.cn/sql-server/385562.html 高手进 锁 nolock,rowlock,tablock,xlock,paglock 锁 no ...

  6. 人人都是 DBA(VI)SQL Server 事务日志

    SQL Server 的数据库引擎通过事务服务(Transaction Services)提供事务的 ACID 属性支持.ACID 属性包括: 原子性(Atomicity) 一致性(Consisten ...

  7. DBCC常用命令小汇

    DBCC是SQL Server提供的一组控制台命令,功能很强大,掌握一些必要的语句,对操作数据库有不少帮助,所以决定整理一下,发现已有不少类似的整理,减少了不少工作,归类如下: 一.DBCC 帮助类命 ...

  8. SQL SERVER CURSOR游标的使用(转载)

    一:认识游标 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集. 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式. 用SQL语言从数据库中检索数据 ...

  9. SQL Server 诊断查询-(4)

    Query #41 Memory Clerk Usage -- Memory Clerk Usage for instance -- Look for high value for CACHESTOR ...

  10. SQL Server数据库学习总结

    经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的     一图胜“十”言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数 ...

随机推荐

  1. wpf中内置资源文件

    wpf中包含三种文件类型 资源文件:编译到可执行或库 WPF 程序集中的数据文件. 内容文件:与可执行 WPF 程序集具有显式关联的独立数据文件. 源站点文件:与可执行 WPF 程序集没有关联的独立数 ...

  2. iOS 简单socket连接

    - (void)CreateSocket{ NSString *host = [self.realStreamDict objectForKey:@"StreamSeverIP"] ...

  3. android Intent机制详解

    http://www.oschina.net/question/565065_67909 http://www.cnblogs.com/hummersofdie/archive/2011/02/12/ ...

  4. ActivityManager与Proxy模式的运用

    Android学习——ActivityManager与Proxy模式的运用 一 Proxy模式 意图: 为其他对象提供一种代理以控制这个对象的访问. 适用性: l  远程代理( Remote Prox ...

  5. win10 3dmax 激活后反复激活和激活码无效问题

    我也是遇到这个问题在网上找答案,像什么断网,清理注册表,删除某个.dat文件 各种试了好多都没管用 弄这个弄了五六个小时才总算成功 心累 现在我总结一下这些方法  我是第一条成功的 其他的我试着都没用 ...

  6. C++每次读取一行字符串输入(学习笔记) (转)

    1. 面向行的输入:getline()getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾. cin.getline(Arr, 20) // Arr为用来输入行的数组的名称:   ...

  7. Tomcat针对网站打开速度慢进行局部优化方案

    首先打开tomcat下的conf文件夹里面的server.xml找到Tomcat端口号一栏 <Connector port="8081" protocol="HTT ...

  8. php开发微信公众号获取信息LBS

    1.一般的公众号都可以在微信公众平台里面设置自定义菜单和自动回复消息,如果需要获取用户位置,则必须开启 服务器配置,当次功能开启后,微信公众平台的自定义菜单和自动回复则失效. 需要通过接口开发来实现微 ...

  9. Java基础总结--方法(函数)

    ---函数的作用---实现特定功能的代码--是一种代码重用的方式---函数的格式---访问修饰符 返回值类型 函数名(参数列表){语句:} 参数列表包含参数的类型和参数名(参数列表要注意顺序)---关 ...

  10. Single linked List by pointer

    其实本应该从一般性的表讲起的,先说顺序表,再说链表 .但顺序表的应用范围不是很广,而且说白了就是数组的高级版本,他的优势仅在于两点:1.逻辑直观,易于理解.2.查找某个元素只需要常数时间--O(1), ...