SQL Server数据库管理员必备:DBCC命令

摘要:
验证数据库、表、索引、目录、文件组或数据库页的分配。2.DBCC维护语句:target_ Percent][,DBCCFREEPROCCACHE[WITHNO_INFOMSGS]DBCCUPDATEUSAGE报告并更正目录视图中的页数和行数错误。][COUNT_ROWS]III.DBCC验证声明:

一、了解DBCC

  DBCC(Database consistenecy checker,简称dbcc) 是一个实用命令集,用来检查数据库的逻辑一致性及物理一致性。

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

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

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

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

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

二、DBCC维护语句:对数据库、索引或文件组进行维护的任务

  DBCC CLEANTABLE。回收删除的可变长度列和文本列的空间。

 

    DBCC CLEANTABLE
  (
  { 'database_name' database_id }
  ,{ 'table_name' table_id 'view_name' view_id }
  [ batch_size ]
  )
  [ WITH NO_INFOMSGS ]

 

  DBCC INDEXDEFRAG。指定表或视图的索引碎片整理。

 

   DBCC INDEXDEFRAG
  (
  { 'database_name' database_id }
  , 'table_name' table_id 'view_name' view_id }
  , 'index_name' index_id }
  , partition_number }
  )
  [ WITH NO_INFOMSGS ]

 

  DBCC DBREINDEX。 对指定数据库中的表重新生成一个或多个索引。

 

  DBCC DBREINDEX
  (
  'table_name'
  [ 'index_name' fillfactor ]
  )

  [ WITH NO_INFOMSGS ]

 

  DBCC SHRINKDATABASE。 收缩指定数据库中的数据文件大小。

 

  DBCC SHRINKDATABASE
  ( 'database_name' database_id 0
  [ ,target_percent ]
  [ NOTRUNCATE TRUNCATEONLY ]
  )
  [ WITH NO_INFOMSGS ]

 

  DBCC DROPCLEANBUFFERS。 从缓冲池中删除所有清除缓冲区。

  DBCC DROPCLEANBUFFERS [ WITH NO_INFOMSGS ]

  

  DBCC SHRINKFILE。 收缩相关数据库的指定数据文件或日志文件大小。

 

  DBCC SHRINKFILE
  (
  { 'file_name' file_id }
  { EMPTYFILE ]
  | target_size NOTRUNCATE TRUNCATEONLY ]
  }
  )
  [ WITH NO_INFOMSGS ]

 

  DBCC FREEPROCCACHE。 从过程缓存中删除所有元素。 

  DBCC FREEPROCCACHE [ WITH NO_INFOMSGS ]

  

  DBCC UPDATEUSAGE 报告目录视图中的页数和行数错误并进行更正。

 

  DBCC UPDATEUSAGE
  ( 'database_name' database_id }
  [ 'table_name' table_id 'view_name' view_id }
  [ 'index_name' index_id ]
  ) WITH NO_INFOMSGS COUNT_ROWS ]
  ]

 

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

  DBCC CHECKALLOC。检查指定数据库的磁盘空间分配结构的一致性。

 

  DBCC CHECKALLOC
  [
  (
  [ 'database_name' database_id ]
  [ NOINDEX
  |
  { REPAIR_ALLOW_DATA_LOSS
  | REPAIR_FAST
  | REPAIR_REBUILD
  } ]
  )
  ]
  [ WITH ALL_ERRORMSGS ]
  [ NO_INFOMSGS ]
  [ TABLOCK ]
  [ ESTIMATEONLY ]
  }
  ]

 

  DBCC CHECKFILEGROUP。检查当前数据库中指定文件组中的所有表的分配和结构完整性。

 

  DBCC CHECKFILEGROUP
  [
  (
  [ 'filegroup_name' filegroup_id ]
  [ NOINDEX ]
  )
  ]
  [ WITH
  {
  [ ALL_ERRORMSGS ]
  [ NO_INFOMSGS ]
  [ TABLOCK ]
  [ ESTIMATEONLY ]
  }
  ]

 

  DBCC CHECKCATALOG。检查指定数据库内的目录一致性。数据库必须联机。

 

  DBCC CHECKCATALOG
  [
  (
  'database_name' database_id 0
  )
  ]
  [ WITH NO_INFOMSGS ]

 

  DBCC CHECKIDENT。 检查指定表的当前标识值,如有必要,则更改标识值。

 

  DBCC CHECKIDENT
  (
  'table_name'
  [ {
  NORESEED RESEED new_reseed_value }
  }
  ]
  )
  [ WITH NO_INFOMSGS ]
  

  DBCC CHECKCONSTRAINTS。 检查当前数据库中指定表上的指定约束或所有约束的完整性。

 

  DBCC CHECKCONSTRAINTS
  [
  (
  'table_name' table_id 'constraint_name' constraint_id
  )
  ]
  [ WITH
  { ALL_CONSTRAINTS ALL_ERRORMSGS NO_INFOMSGS ]
  ]

 

  DBCC CHECKTABLE。检查组成表或索引视图的所有页和结构的完整性。

 

  DBCC CHECKTABLE
  (
  'table_name' 'view_name'
  [ NOINDEX
  | index_id
  | REPAIR_ALLOW_DATA_LOSS
  | REPAIR_FAST
  | REPAIR_REBUILD }
  ]
  )
  [ WITH
  { ALL_ERRORMSGS ]
  [ NO_INFOMSGS ]
  [ TABLOCK ]
  [ ESTIMATEONLY ]
  [ PHYSICAL_ONLY ]
  }
  ]

 

  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 ]
  }
  ]

 

四、DBBCC的信息语句

  DBCC SHOW_STATISTICS。显示指定表上的指定目标的当前分发统计信息。

  DBCC INPUTBUFFER.显示从客户端发送到 Microsoft SQL Server 2005 实例的最后一个语句。

  DBCC INPUTBUFFER ( session_id [ , request_id ] ) [WITH NO_INFOMSGS ]

 

  DBCC SHOWCONTIG.显示指定的表的数据和索引的碎片信息。

 

  DBCC SHOWCONTIG
  [ (
  { 'table_name' table_id 'view_name' view_id }
  [ 'index_name' index_id ]
  )]
  [ WITH
  {
  [ ALL_INDEXES ]
  [ TABLERESULTS ]
  [ FAST ]
  [ ALL_LEVELS ]
  [ NO_INFOMSGS ]
  }
  ]

 

  DBCC OPENTDBCC INPUTBUFFERRAN 如果在指定数据库内存在最早的活动事务和最早的分布式和非分布式复制事务,则显示与之有关的信息

 

  DBCC OPENTRAN
  [
  ( 'database_name' database_id ]
  { WITH TABLERESULTS ]
  [ NO_INFOMSGS ]
  }
  ]

 

  DBCC SQLPERF.提供有关如何在所有数据库中使用事务日志空间的统计信息。

 

  DBCC SQLPERF LOGSPACE 'sys.dm_os_latch_stats' CLEAR 'sys.dm_os_wait_stats' CLEAR )
  [WITH NO_INFOMSGS ]

 

  DBCC OUTPUTBUFFER.以十六进制和 ASCII 格式返回指定 session_id 的当前输出缓冲区。

  DBCC OUTPUTBUFFER ( session_id [ , request_id ] )

 

  DBCC TRACESTATUS.显示跟踪标志的状态。 

  DBCC TRACESTATUS ( [ [ trace# [ ,...n ] ] [ , ] [ -1 ] ] )

 

  DBCC PROCCACHE.以表格格式显示有关过程缓存的信息。

  DBCC PROCCACHE [ WITH NO_INFOMSGS ]

 

  DBCC USEROPTIONS 返回当前连接的活动(设置)的 SET 选项。

  DBCC USEROPTIONS

 

五、DBBCC的杂项语句:杂项任务,如启用跟踪标志或从内存中删除 DLL

  DBCC HELP。返回指定的 DBCC 命令的语法信息。

  DBCC HELP ( 'dbcc_statement' | @dbcc_statement_var | '?' )[ WITH NO_INFOMSGS ]

 

  DBCC dllname (FREE)。从内存中上载指定的扩展存储过程 DLL。

  DBCC dllname ( FREE ) [ WITH NO_INFOMSGS ]

 

  DBCC DBREPAIR 。禁用指定的跟踪标记。

  DBCC TRACEOFF ( trace# [ ,...n ] [ , -1 ] ) [ WITH NO_INFOMSGS ]

 

  DBCC TRACEON。启用指定的跟踪标记。

  DBCC TRACEON ( trace# [ ,...n ][ , -1 ] ) [ WITH NO_INFOMSGS ]

 

六、未公开的DBCC

  DBCC ERRLOG

  初始化SQL错误日志

  DBCC BUFFER

  显示缓冲区头部和页面信息

  DBCC FLUSHPROCINDB

  清楚数据库服务器内存中的某个数据库存储过程的缓存内容。

  DBCC DBINFO

  显示数据库结果信息

  DBCC DBTABLE

  显示管理数据库的表信息

  DBC IND

  查看某个索引使用的页面信息。

  DBCC REBULDLOG

  重建修复SQL数据库事物日志文件。

  DBCC LOG

  查看某个数据库的事务日志信息

  DBCC PAGE

  查看某个数据库数据也面信息

  DBCC PROCBUF

  显示过程缓冲池的缓冲区头和存储过程。

  DBCC PRTIPAGE

  查看某个索引页面的每行指向的页面号。

  DBCC PSS

  显示当前连接到SQLSERVER服务器的进程信息。

  DBCC RESOURCE

  显示服务器当前使用的资源情况。

  DBCC TAB

  查看数据页面的结构。

免责声明:文章转载自《SQL Server数据库管理员必备:DBCC命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于大小型项目如何最大限度提高WebAPi性能Selenium中日期控件的操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

NACOS集群搭建遇到的问题

搭建NACOS官网教程: https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 这里说的很详细了。也有中文的。我就记录一下在搭建集群的时候遇到的问题 详情见:自己的有道云笔记,一下只是借鉴的问题处理方式 1.数据库连接问题:     nacos默认的数据库驱动是5.1.? 如果你的mysql版本...

ES数据架构与关系数据库Mysql

ES数据架构的主要概念(与关系数据库Mysql对比)     MySQL     ElasticSearch Database Index Table Type Row Document Column Field Schema Mapping Index Everything is indexed SQL Query DSL...

分库分表的几种常见玩法及如何解决跨库查询等问题

分库分表的几种常见玩法及如何解决跨库查询等问题 在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗?为此,笔者整理...

Oracle数据库脚本中的set define off

2018年8月6日15:11:34 Oracle数据库脚本中的set define off 前言 最近在公司写需求,接触到脚本,第一句set define off;就不知道什么意思了,查询后记录之。 名称 SET DEFINE 概要 SET DEFINE命令改变标记替代变量的前缀字符。你可以使用SET DEFINE关闭替代变量。 语法 SET DEF[IN...

plsql无法连接64位oracle数据库的解决方法

今儿个重装了个系统,win8 64位。接着装了个64位的oracle11g,oracle11g下载页面:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html,找到适合自己系统的数据库,需要将file1和file2都下载下来,压缩到同一个文件夹下才...

excel文件使用navicat工具导入mysql的方法

1、在excel文件的sheet上,第1行下面插入一行,对应DB里面的字段名称,方便后面导入时做字段匹配: 2、使用Navicat ,打开工具,选择表所在的数据库,然后点击数据库名字,右键Tables,出来下拉菜单选择import wizard(中文版:导入向导).弹出一个选择界面,选择excel file文件 3、点击next(下一步),选择对应...