DBCC用法

摘要:
DBCC是SQL Server提供的一组控制台命令。它非常强大。掌握一些必要的语句有助于操作数据库。所以我决定对它进行分类,发现有很多类似的分类,这减少了很多工作。以下是类别:1.DBCC帮助命令*DBCCHELP('?
DBCC是SQL Server提供的一组控制台命令,功能很强大,掌握一些必要的语句,对操作数据库有不少帮助,所以决定整理一下,发现已有不少类似的整理,减少了不少工作,归类如下:


一、DBCC 帮助类命令

* DBCC HELP('?')
查询所有的DBCC命令
* DBCC HELP('命令')
查询指定的DBCC命令的语法说明
* DBCC USEROPTIONS
返回当前连接的活动(设置)的SET选项

二、DBCC 检查验证类命令

* DBCC CHECKALLOG ('数据库名称')
检查指定数据库的磁盘空间分配结构的一致性
* 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的日志情况

免责声明:文章转载自《DBCC用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇NPOI 添加下拉列表RMAN备份失败: ORA-19502 & ORA-27072: File I/O error下篇

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

相关文章

Android开发学习路线图

通过前面的3篇博客已经简单的介绍了Android开发的过程并写了一个简单的demo,了解了Android开发的环境以及一些背景知识。 接下来这篇博客不打算继续学习Android开发的细节,先停一下,明确一下接下来的学习目标以及学习路线。 一、对Android开发的基本认识 1、Android原生开发是基于Java语言的,由于我比较擅长C#,所以对Java语...

SQLITE3 使用总结(直接使用C函数)

转载网址:http://blog.chinaunix.net/uid-8447633-id-3321394.html 前序: Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记。 这里要注明,我是一个跨平台专注者,并不喜欢只用 window...

Mysql字符集设置

最近,在项目组使用的mysql数据库中,插入数据出现乱码,关于这个问题做了下总结,我们从最基本的地方说起,到错误产生的深层次原因和解决办法。 基本概念 • 字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等;• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给...

statement 、prepareStatement的用法和解释

转自:http://blog.csdn.net/QH_JAVA/article/details/48245945 一、prepareStatement 的用法和解释 1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程 2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Stateme...

sqlserver2008r2 版本数据库迁移到2019版本导致查询效率慢的解决方法

1、在sqlserver2008 版本的数据库引擎创建数据库后,迁移到sqlserver2019版本,存储过程查询效率变慢了。 2、主要原因:使用sqlserver2019版本的数据库软件创建,默认是不往低版本的数据库软件兼容。 3、处理版本,右击数据库-》属性-》选项-》兼容级别,选择SQL Server 2008 (100) 即可。    ...

spring-session用mysql实现session共享实践

前段时间,写了篇<spring-session-data-redis解决session共享的问题>文章,介绍了spring-session使用redis存储实现session共享的内部机制, 遇到很多人提问到jdbc的实现或者为什么只有理论没有实践?索性就实践一下jdbc方式。 1.spring-session实现了使用不同存储介质保存共享的s...