SQLSERVER DBCC命令大全
DBCC DROPCLEANBUFFERS:从缓冲池中删除所有缓存,清除缓冲区
在进行测试时,使用这个命令可以从SQLSERVER的数据缓存data cache(buffer)清除所有的测试数据,以保证测试的公正性。
需要注意的是这个命令只移走干净的缓存,不移走脏缓存。由于这个原因,在执行这个命令前,应该先执行CheckPoint,将所有脏的缓存写入磁盘,
这样在运行DBCC RROPCLEANBUFFERS 时,可以保证所有的数据缓存被清理,而不是其中的一部分。
DBCC CacheStats:显示存在于当前buffer Cache中的对象的信息,例如:hit rates,编译的对象和执行计划
DBCC ErrorLog :如果很少重启mssqlserver服务,那么服务器的日志(不是数据库事务日志)会增长得很快,而且打开和查看日志的速度也会很慢
使用这个命令,可以截断当前的服务器日志,主要是生成一个新的日志。可以考虑设置一个调度任务,每周执行这个命令自动截断服务器日志。
使用存储过程sp_cycle_errorlog也可以达到同样的目的
一、DBCC 帮助类命令
DBCC HELP('?') :查询所有的DBCC命令
DBCC HELP('命令') :查询指定的DBCC命令的语法说明
DBCC USEROPTIONS :返回当前连接的活动(设置)的SET选项
二、DBCC 检查验证类命令
DBCC CHECKALLOC('数据库名称') :检查指定数据库的磁盘空间分配结构的一致性
DBCC CHECKCATALOG ('数据库名称') :检查指定数据库的系统表内和系统表间的一致性
DBCC CHECKCONSTRAINTS ('tablename') :检查指定表上的指定约束或所有约束的完整性
DBCC CHECKDB :检查数据库中的所有对象的分配和结构完整性
DBCC CHECKFILEGROUP :检查指定文件组中所有表在当前数据库中的分配和结构完整性
DBCC CHECKTABLE :检查指定表或索引视图的数据、索引及test、ntest和image页的完整性
DBCC CHECKIDENT :如果存在大量数据删除,考虑在删除后,使用 dbcc checkident 重置一下自增值
检查指定的当前标识值
DBCC SQLPERF(UMSSTATS):最关键的一个参考数据num runnable:表明当前有多少个线程再等待运行,如果大于等于2,考虑CPU达到瓶颈
Scheduler ID:当前机器有多少个逻辑CPU就有多少个Scheduler ID,具体怎麽看可以看一下我的这篇文章
三、DBCC 维护类命令
DBCC CLEANTABLE ('db_name','table_name') :回收Alter table drop column语句删除可变长度列或text
DBCC DBREINDEX :重建指定数据库的一个或多个索引 跟ALTER INDEX REBUILD差不多
DBCC INDEXDEFRAG:对表或视图上的索引和非聚集索引进行碎片整理
DBCC PINTABLE (db_id,object_id) :将表数据驻留在内存中
查看哪些表驻留在内存的方法是:0:没有驻留 ,1:驻留
1 USE [GPOSDB]
2 GO
3 SELECT OBJECTPROPERTY(OBJECT_ID('dbo.SystemPara'), 'tableispinned')
DBCC UNPINTABLE (db_id,object_id) :撤消驻留在内存中的表
DBCC SHRINKDATABASE(db_id,int) :收缩指定数据库的数据文件和日志文件大小
DBCC SHRINKFILE(file_name,int):收缩相关数据库的指定数据文件和日志文件大小
四、DBCC 性能调节命令
DBCC dllname(FREE) :在内存中卸载指定的扩展过程动态链接库(dll)
sp_helpextendedproc 查看加载的扩展PROC
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 2005服务器内存中的某个数据库的存储过程缓存内容
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) :查看某个数据库的事物日志信息 显示格式可以为:-1,0,1,2,3,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的建议
1、在系统使用率较低时运行 CHECKDB。
2、请确保未同时执行其它磁盘 I/O 操作,例如磁盘备份。
3、将 tempdb 放到单独的磁盘系统或快速磁盘子系统中。
4、允许 tempdb 在驱动器上有足够的扩展空间。 使用带有 ESTIMATE ONLY 的 DBCC 估计 tempdb 将需要多少空间。
5、避免运行占用大量 CPU 的查询或批处理作业。
6、在 DBCC 命令运行时,减少活动事务。
7、使用 NO_INFOMSGS 选项减少一些信息的输出。
8、考虑使用带有 PHYSICAL_ONLY 选项的 DBCC CHECKDB 来检查页和记录的物理结构。
PHYSICAL_ONLY 选项:只检查物理错误,不检查逻辑错误
物理错误比逻辑出更严重,因为物理错误一般SQLSERVER都不能修复的,而逻辑错误大部分SQLSERVER都可以修复
SQLSERVER DBCC命令大全的更多相关文章
- [转帖]SQL Server DBCC命令大全
SQL Server DBCC命令大全 原文出处:https://www.cnblogs.com/lyhabc/archive/2013/01/19/2867174.html DBCC DROPC ...
- SQL Server DBCC命令大全
原文出处:https://www.cnblogs.com/lyhabc/archive/2013/01/19/2867174.html DBCC DROPCLEANBUFFERS:从缓冲池中删除所有缓 ...
- Sql Server之旅——第五站 确实不得不说的DBCC命令(文后附年会福利)
今天研发中心办年会,晚上就是各自部门聚餐了,我个人喜欢喝干红,在干红中你可以体味到那种酸甜苦辣...人生何尝不是这样呢???正好 ceo从美国带了干红回来,然后我就顺道开心的过了把瘾....一个字.. ...
- Windows CMD命令大全(转)
Windows CMD命令大全 命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行 ...
- Sql Server之旅——第五站 确实不得不说的DBCC命令
原文:Sql Server之旅--第五站 确实不得不说的DBCC命令 今天研发中心办年会,晚上就是各自部门聚餐了,我个人喜欢喝干红,在干红中你可以体味到那种酸甜苦辣...人生何尝不是这样呢???正好 ...
- 【干货分享】dos命令大全
一般来说dos命令都是在dos程序中进行的,如果电脑中安装有dos程序可以从开机选项中选择进入,在windows 系统中我们还可以从开始运行中输入cmd命令进入操作系统中的dos命令,如下图: 严格的 ...
- dos命令大全 黑客必知的DOS命令集合
dos命令大全 黑客必知的DOS命令集合 一般来说dos命令都是在dos程序中进行的,如果电脑中安装有dos程序可以从开机选项中选择进入,在windows 系统中我们还可以从开始运行中输入cmd命令进 ...
- DOS命令大全(转)
dos命令大全 CMD是command的缩写,是windows环境下的虚拟DOS窗口,提供有DOS命令,功能强大,如果你以前学习过DOS操作,那就小儿科了.是基于Windows的命令行窗口,在开始-- ...
- windows dos命令大全
windows dos命令大全 一.windows DOS命令概述 Windows的dos命令又是Windows的CMD命令.而cmd命令又是原来MS-DOS系统保留下来. DOS来源路径与配置对应的 ...
随机推荐
- centos安装PHP扩展(bcmath)
Centos下搭完Mysql+Apache+PHP后,发现有些网页打开是空白的.将php.ini里面的参数 error_reporting = E_ALL,display_errors = On,di ...
- POJ 1686 Lazy Math Instructor(栈)
原题目网址:http://poj.org/problem?id=1686 题目中文翻译: Description 数学教师懒得在考卷中给一个问题评分,因为这个问题中,学生会为所问的问题提出一个复杂的公 ...
- Python实现判断回文串
回文数的概念:即是给定一个数,这个数顺读和逆读都是一样的.例如:121,1221,a,aa是回文数,123,1231不是回文数. while 1: String = input('请先输入一个字符串 ...
- 浅谈算法——线段树之Lazy标记
一.前言 前面我们已经知道线段树能够进行单点修改和区间查询操作(基本线段树).那么如果需要修改的是一个区间该怎么办呢?如果是暴力修改到叶子节点,复杂度即为\(O(nlog n)\),显然是十分不优秀的 ...
- (二)python高级特性
一.切片 >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python ...
- js 验证码倒计时效果
function settime(obj) { if(second == 0){ obj.removeAttribute("disabled"); obj.value=" ...
- AJPFX简述java语言现状和发展
作为一种最流行的网络编程语言之一,java语言在当今信息化社会中发挥了 重要的作用.Java语言具有面向对象.跨平台.安全性.多线程等特点,这使得java成为许多应用系统的理想开发语言.java应用在 ...
- C#过时方法标记
1.当遇到过时或废弃的方式 函数怎么办 [Obsolete]特性解决你的困惑 1.1:当方法已经完成相关兼容 可以保留时
- fullpagejs实现的拥有header和foooter的全屏滚动demo/fullpage footer
fullpagejs实现的拥有header和foooter的全屏滚动, 技术要点:给section元素加fp-auto-height类, <!DOCTYPE html> <html ...
- DOM简介及节点、属性、查找节点的方法
DOM(Document Object Modle) 操作文档的编程接口DOM定义了表示和修改文档的方法,不能修改css样式表,在js中使用DOM方法改变元素的css样式,实质上是在元素上添加行间样式 ...