DBCC用法汇总
本文摘自http://www.cnblogs.com/lilycnblogs/archive/2011/03/31/2001372.html 留作查阅
DBCC是SQL Server提供的一组控制台命令,功能很强大,掌握一些必要的语句,对操作数据库有不少帮助,所以决定整理一下,发现已有不少类似的整理,减少了不少工作,归类如下:
一、DBCC 帮助类命令
* DBCC HELP('?') 
查询所有的DBCC命令 
* DBCC HELP('命令') 
查询指定的DBCC命令的语法说明 
* DBCC USEROPTIONS 
返回当前连接的活动(设置)的SET选项
二、DBCC 检查验证类命令
* DBCC CHECKALLOC ('数据库名称') 
检查指定数据库的磁盘空间分配结构的一致性 
* DBCC CHECKCATALOG ('数据库名称') 
检查指定数据库的系统表内和系统表间的一致性 
* DBCC CHECKCONSTAINTS ('tablename') 
检查指定表上的指定约束或所有约束的完整性 
* DBCC CHECKDB 
检查数据库中的所有对象的分配和结构完整性 
* DBCC CHECKFILEGROUP 
检查指定文件组中所有表在当前数据库中的分配和结构完整性 
* DBCC CHECKTABLE 
检查指定表或索引视图的数据、索引及test、ntest和image页的完整性 
* DBCC CHECKIDENT 
检查指定的当前标识值 
* DBCC SQLPERF(UMSSTATS) undocumented in BOL 
可以用来检查是否CPU使用达到瓶颈 
最关键的一个参考数据num runnable,表明当前有多少个线程再等待运行 
如果大于等于2,考虑CPU达到瓶颈
三、DBCC 维护类命令
* DBCC CLEANTABLE ('db_name','table_name') 
回收Alter table drop column语句删除可变长度列或text 
* DBCC DBREINDEX 
重建指定数据库的一个或多个索引 
* DBCC INDEXDEFRAG 
对表或视图上的索引和非聚集索引进行碎片整理 
* DBCC PINTABLE (db_id,object_id) 
将表数据驻留在内存中 
查看哪些表驻留在内存的方法是: 
select objectproperty(object_id('tablename'),‘tableispinned') 
* DBCC UNPINTABLE (db_id,object_id) 
撤消驻留在内存中的表 
* DBCC SHRINKDATABASE(db_id,int) 
收缩指定数据库的数据文件和日志文件大小 
* DBCC SHRINKFILE(file_name,int) 
收缩相关数据库的指定数据文件和日志文件大小
四、DBCC 性能调节命令
* DBCC dllname(FREE) 
sp_helpextendedproc 查看加载的扩展PROC 
在内存中卸载指定的扩展过程动态链接库(dll) 
* DBCC DROPCLEANBUFFERS 
从缓冲池中删除所有缓冲区 
* DBCC FREEPROCCACHE 
从过程缓冲区删除所有元素 
* DBCC INPUTBUFFER 
显示从客户机发送到服务器的最后一个语句 
* DBCC OPENTRAN (db_name) 
查询某个数据库执行时间最久的事务,由哪个程序拥有 
* DBCC SHOW_STATISTICS 
显示指定表上的指定目标的当前分布统计信息 
* DBCC SHOWCONTIG 
显示指定表的数据和索引的碎片信息 
* DBCC SQLPERF 
(logspace) 查看各个DB的日志情况 
(iostats) 查看IO情况 
(threads) 查看线程消耗情况 
返回多种有用的统计信息 
* DBCC CACHESTATS 
显示SQL Server 2000内存的统计信息 
* DBCC CURSORSTATS 
显示SQL Server 2000游标的统计信息 
* DBCC MEMORYSTATS 
显示SQL Server 2000内存是如何细分的 
* DBCC SQLMGRSTATS 
显示缓冲中先读和预读准备的SQL语句
五、DBCC 未公开的命令
* DBCC ERRLOG 
初始化SQL Server 2000的错误日志文件 
* DBCC FLUSHPROCINDB (db_id) 
清除SQL Server 2000服务器内存中的某个数据库的存储过程缓存内容 
* DBCC BUFFER (db_name,object_name,int(缓冲区个数)) 
显示缓冲区的头部信息和页面信息 
* DBCC DBINFO (db_name) 
显示数据库的结构信息 
* DBCC DBTABLE 
显示管理数据的表(数据字典)信息 
* DBCC IND (db_name,table_name,index_id) 
查看某个索引使用的页面信息 
* DBCC REBUILDLOG 
重建SQL Server 2000事务日志文件 
* DBCC LOG (db_name,3) (-1--4) 
查看某个数据库使用的事物日志信息 
* DBCC PAGE 
查看某个数据库数据页面信息 
* DBCC PROCBUF 
显示过程缓冲池中的缓冲区头和存储过程头 
* DBCC PRTIPAGE 
查看某个索引页面的每行指向的页面号 
* DBCC PSS (user,spid,1) 
显示当前连接到SQL Server 2000服务器的进程信息 
* DBCC RESOURCE 
显示服务器当前使用的资源情况 
* DBCC TAB (db_id,object_id) 
显示数据页面的结构
六、DBCC跟踪标记
跟踪标记用于临时设置服务器的特定特征或关闭特定行为,常用于诊断性能问题或调试存储过程或复杂的计算机系统 
* DBCC TRACEON (3604) 
打开跟踪标记 
* DBCC TRACEOFF 
关闭跟踪标记 
* DBCC TRACESTATS 
查看跟踪标记状态
七、使用 DBCC 结果集输出
许多 DBCC 命令可以产生表格格式的输出(使用 WITH TABLERESULTS 选项)。该信息可装载到表中以便将来使用。以下显示一个示例脚本:
   
  CREATE TABLE DBCCResult (
DBCCFlag INT,
Result INT
)
INSERT INTO DBCCResult
EXEC ('DBCC TRACESTATUS (-1) WITH NO_INFOMSGS')
SELECT *
  FROM DBCCResult 
八、官方使用DBCC的建议 
1、在系统使用率较低时运行 CHECKDB。 
2、请确保未同时执行其它磁盘 I/O 操作,例如磁盘备份。 
3、将 tempdb 放到单独的磁盘系统或快速磁盘子系统中。 
4、允许 tempdb 在驱动器上有足够的扩展空间。 使用带有 ESTIMATE ONLY 的 DBCC 
估计 tempdb 将需要多少空间。 
5、避免运行占用大量 CPU 的查询或批处理作业。 
6、在 DBCC 命令运行时,减少活动事务。 
7、使用 NO_INFOMSGS 选项显著减少处理和 tempdb 的使用。 
8、考虑使用带有 PHYSICAL_ONLY 选项的 DBCC CHECKDB 来检查页和记录首部 
的物理结构。当硬件导致的错误被置疑时,这个操作将执行快速检查。
在发布,订阅复制时要用服务器实名时可以这样:
select * from sysservers (可以找到原来服务器的名称)
exec sp_dropserver 'jmsql9' (删除原来的服务器名)
exec sp_addserver 'jmSQL9' ,LOCAL (改为新的服务器名)
ALTER DATABASE [jm] SET SINGLE_USER (改为单用户模式)
DBCC CHECKDB("databasename",REPAIR_REBUILD) WITH TABLOCK (修复数据库)
DBCC CHECKTABLE("tablename",repair_rebuild) with tablock (修复表)
DBCC DBREINDEX ('t_icitem' , ' ') 修复此表所有的索引。
ALTER DATABASE [jm] SET MULTI_USER (改为多用户模式)
REPAIR_ALLOW_DATA_LOSS:执行由REPAIR_REBUILD 完成的所有修复,包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,以及删除已损坏的文本对象。这些修复可能会导致一些数据丢失。修复操作可以在用户事务下完成以允许用户回滚所做的更改。如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。修复完成后,备份数据库。
REPAIR_FAST 进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。这些修复可以很快完成,并且不会有丢失数据的危险。
REPAIR_REBUILD 执行由REPAIR_FAST 完成的所有修复,包括需要较长时间的修复(如重建索引),执行这些修复时不会有丢失数据的危险
DBCC用法汇总的更多相关文章
- Linux中find命令的用法汇总
		
Linux中find命令的用法汇总 https://www.jb51.net/article/108198.htm
 - Python Enum 枚举 用法汇总
		
Python Enum 枚举 用法汇总 import os import sys if sys.version_info.major + sys.version_info.minor * 0.1 &l ...
 - C#中DllImport用法汇总
		
最近使用DllImport,从网上google后发现,大部分内容都是相同,又从MSDN中搜集下,现将内容汇总,与大家分享. 大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比 ...
 - Hibernate 注解中CascadeType用法汇总
		
这两天,参加一个课程设计,同时这个项目又作为一个模块镶嵌到其他项目中,考虑如此,应与原先的架构相同,因牵扯到留言和相互@功能,故数据库之间OneToOne,OneToMany,ManyToMany之风 ...
 - BeanShell用法汇总(部分摘抄至网络)【转】
		
说明:本文部分资料摘抄至 来源: http://www.cnblogs.com/puresoul/p/4915350.html 来源: http://www.cnblogs.com/puresoul/ ...
 - 正则表达式常用用法汇总 __西科大C语言
		
正则表达式,又称正规表示法.常规表示法.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列 ...
 - XStream 用法汇总
		
XStream是一家Java对象和XML转换工具,很好很强大.它提供了所有的基本型.排列.收集和其他类型的支持,直接转换.因此XML在数据交换经常使用.对象序列化(和Java对象的序列 ...
 - 常用php时间函数用法汇总
		
1.设置时区的方法: php5后都要自己设置时区,要么修改php.ini的设置,要么在代码里修改. 在PHP.INI中设置时区 date.timezone = PRC 在代码中设置时区 1 date_ ...
 - PHP中foreach()用法汇总
		
这篇文章主要给大家详细介绍了PHP中foreach()用法以及相关的示例,十分的细致,有需要的小伙伴可以参考下. PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像.这只是一种遍 ...
 
随机推荐
- nodeJS起步 1
			
nodeJS起步 -- (1) 先来简单介绍nodeJS 我们知道JavaScript是运行在浏览器中的,浏览器为它提供了一个上下文(context),从而让JavaScript得以解析执行. nod ...
 - 从WebBrowser中取得Cookie 和 WebClient设置cookie!
			
原文:从WebBrowser中取得Cookie 和 WebClient设置cookie! 从WebBrowser中取得Cookie 的代码 CookieContainer myCookieContai ...
 - iOS_中国汉字到拼音_pinyin4objc
			
最后效果图: ViewController.h // // ViewController.h // PinYin4Objc汉字转拼音演示demo // // Created by beyond on ...
 - STL在迭代的过程,删除指定的元素
			
直接在Code.在 Picture #include <iostream> #include <list> using namespace std; // STL在迭代的过程中 ...
 - SQL编程之生日问题
			
在学习MySQL的时候,一个较为经典的SQL编程题目就是生日问题,已知某个用户的出生日期和当前日期,计算他近期的生日. 一般须要考虑两个问题 闰年2月是29天 今年的生日是否过完 比如:某人的生日是1 ...
 - JavaScript-RegExp对象仅仅能使用一次
			
下面的代码,是測试从字符串中识别出年月日,能够看到创建的rYMD这个RegExp对象运行了一次后,又运行了一次. var DateStr = "2014-9-8"; var rYM ...
 - 使用Row_Number()分页优化
			
记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题 最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且 ...
 - bootstrap基本标签总结2
			
[布局]bootstrap基本标签总结2 缩略图 <div class="container"> <div class="row"> ...
 - leetcode第32题--Search in Rotated Sorted Array
			
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...
 - jQuery无限级联下拉框插件
			
自己编写jQuery插件 之 无限级联下拉框 因为是级联,所以数据必须是树型结构的,我这里的测试数据如下: 看下效果图: 1.>图一: 2.>图二: 3.>图三: 由图可知,下拉 ...