SQL Server中的所有DBCC命令

0    126    3

Tags:

👉 本文共约5095个字,系统预计阅读时间或需20分钟。

简介

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

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

命令类别执行
维护对数据库、索引或文件组进行维护的任务。
杂项杂项任务,如启用跟踪标志或从内存中删除 DLL。
信息收集并显示各种类型信息的任务。
验证对数据库、表、索引、目录、文件组或数据库页的分配进行的验证操作。

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

DBCC 内部数据库快照用法

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

  • DBCC CHECKALLOC
  • DBCC CHECKCATALOG
  • DBCC CHECKDB
  • 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 命令时,该命令将使用表锁而不是内部数据库快照:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复