的SQL Server DBCC命令概述

此文主要向大家讲述的是一些特别有用处,但相关文档中没有对其特别介绍的SQL Server DBCC命令,齐可以在优化 SQL Server 时进行使用,如果你对其相关的实际操作有兴趣了解的话,以下的文章将会给你提供相关的知识。

1.DBCC CacheStats:显示存在于当前 buffer Cache 中的对象的信息,例如 :hit rates,编译的对象和执行计划。

例:

 

  1. DBCC CACHESTATS 

执行结果

 

  1. Object Name Hit Ratio  
  2. ———— ————-  
  3. Proc 0.86420054765378507  
  4. Prepared 0.99988494930394334  
  5. Adhoc 0.93237136647793051  
  6. ReplProc 0.0  
  7. Trigger 0.99843452831887947  
  8. Cursor 0.42319205924058612  
  9. Exec Cxt 0.65279111666076906  
  10. View 0.95740334726893905  
  11. Default 0.60895011346896522  
  12. UsrTab 0.94985969576133511  
  13. SysTab 0.0  
  14. Check 0.67021276595744683  
  15. Rule 0.0  
  16. Summary 0.80056155581812771  

从这个命令可以得到一些关键的统计信息:

Hit Ratio:显示特定对象可以在sql server的缓存中被命中的百分比,这个数值越大,越好。

Object Count:显示特定类型的对象在sql server的缓存中被命中的总数。

Avg.Cost:sql server用于测量编译一个执行计划所需的时间,以及这个计划所需的内存。根据这个值,可以决定执行计划是否应该加载在缓存中。

Avg.Pages:测量在缓存中的对象使用8K页的平均总数。

LW Ojbect Count,LW Avg Cost,WL Avg Stay,LW Ave Use:这些列的值表明有多少特定的对象已经被写进程从缓存总移走。这些数值越低,越好。

2.DBCC DROPCLEANBUFFERS:从缓冲池中删除所有,清除缓冲区。在进行测试时,使用这个命令可以从sql server’s的数据缓存data cache(buffer)清除所有的测试数据,以保证测试的公正性。需要注意的是这个命令只移走干净的缓存,不移走脏缓存。由于这个原因,在执行这个命令前,应该先执行CheckPoint,将所有脏的缓存写入磁盘,这样在运行SQL Server DBCC RROPCLEANBUFFERS 时,可以保证所有的数据缓存被清理,而不是其中的一部分。

3.DBCC ErrorLog :如果很少重起mssqlserver服务,那么服务器的日志会增长得很快,而且打开和查看日志的速度也会很慢。使用这个命令,可以截断当前的服务器日志,主要是生成一个新的日志。可以考虑设置一个调度任务,每周执行这个命令自动截断服务器日志。使用存储过程sp_cycle_errorlog也可以达到同样的目的。

4.DBCC FLUSHPROCINDB:用于清理一个数据库实例中指定数据库的存储过程使用的缓存。数据库的ID是必输参数。

在测试时保证以前的存储过程计划不会对测试结果造成负面影响,可以使用这个存储过程。

例子:

 

  1. DECLARE @intDBID INTEGER SET @intDBID = (SELECT dbid FROM  
  2. master.dbo.sysdatabases WHERE name = ’database_name’)  
  3. DBCC FLUSHPROCINDB (@intDBID)  

5.DBCC FREEPROCCACHE:用于清理所有数据库的过程高速缓存。例如,释放过程高速缓存将导致重新编译某些部分(例如特别 SQL 语句),而不是从高速缓存中对其再使用。

6.DBCC MEMORYSTATUS:列出一个详细分类,分类中显示sql server缓存如何分配,包括缓存的活动。

7.SQL Server DBCC PAGE:用于查看sql server 中一个数据页的内容。

例:

 

  1. DBCC PAGE((dbid|dbname),pagenum [,Print Option][,cache][,logical]) 

参数说明:

Dbid or dbname :可以是数据库ID或数据库名。

PageNum:要检查的页号

Print option:(可选)打印选项的值是:0,1,2。

0-(缺省)显示页的头信息。

1- 显示页的头信息,页中每行的信息以及页的偏移表。逐行显示页中的行。

2- 与选项1相同,除了不是逐行显示页行,而是显示一个单个的信息块。

Cache:(可选)该参数的值是1或0

0- 命令直接从磁盘查找页号而不是检查页号是否在高速缓存中DBCC PAGE

1- 若页在高速缓存中,优先从高速缓存中获取页,而不是直接从磁盘中获取页

Logical:(可选)该参数用于页号是从虚拟页中获取还是逻辑页中获取。这个参数的值可以是1或0,

0- 一个虚拟页号。

1- 一个逻辑页号。

8.DBCC SQLMGRSTATS:用于产生3个不同的值,这些值用在你想查看高速缓存在ad-hoc和预编译的TSQL语句中是如何工作的。

例:

DBCC SQLMGRSTATS

结果:

 

  1. Item Status  
  2. ————————- ———–  
  3. Memory Used (8k Pages) 5446  
  4. Number CSql Objects 29098  
  5. Number False Hits 425490  

其中:

Memor Used(8K Pages):若内存页的数量非常大,这也许是个提示:表明一些用户连接正在预处理许多TSQL语句。

Number CSql Objects:表明已经在高速缓存中的TSQL的语句的总数。

Number False Hits:有时,当sql server在匹配在高速缓存中已经存在的TSQL语句时会出现错误的命中。在理想的情况下,这个数字应该尽可能地小。

9.SQL Server DBCC SQLPERF():这个命令包括了那些有文档说明和没有说明的选项。

 

  1. DBCC SQLPERF ( LOGSPACE ) 

提供有关所有数据库中的事务日志空间使用情况的统计信息。具体说明可参考联机帮助。

DBCC SQLPERF(UMSSTATS):提供有关sql server 线程管理情况的统计信息。

运行这个命令,结果如下:

 

  1. Statistic Value  
  2. ——————————– ————————  
  3. Scheduler ID 0.0  
  4. num users 17.0  
  5. num runnable 0.0  
  6. num workers 13.0  
  7. idle workers 6.0  
  8. work queued 0.0  
  9. cntxt switches 76752.0  
  10. cntxt switches(idle) 47139.0  
  11. Scheduler Switches 0.0  
  12. Total Work 54056.0  

 

以下是一些关键统计信息的解释:

Scheduler ID:每个CPU对应一个调度程序,这是调度程序的序号。

Num user:目前在调度队列中的SQL Server线程数目。

Num runnable: 目前正在运行的SQL Server线程数目。

Num Workers:线程池的大小。

Idle workers:正在空闲的workers。

Cntxt switches:在可执行的线程之间交换上下文的数目。

DBCC SQLPERF(WAITSTATS):提供有关sql server read-ahead activity的信息。

DBCC SQLOERF(IOSTATS):提供主要的SQL server读和写的信息。

SQL Server DBCC SQLPERF(RASTATS):提供SQL server read-ahead 活动的信息。

DBCC SQLPERF (THREADS):提供每个sql server线程的I/O,CPU及内存使用情况的信息。
 

【编辑推荐】

  1. SQL Server设定过滤条件提高索引效率
  2. 安装MySQL Server 5.0在Linux上
  3. 详解SQL Server 2008复制分区清理数据
  4. Oracle数据库索引和SQL Server的阐述
  5. SQL Server 2005负载均衡部分性能分析

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/226338.html<

(0)
管理的头像管理
上一篇2025-04-17 08:00
下一篇 2025-04-17 08:01

相关推荐

  • GEO优化用什么服务器收录效果好,哪个好?

    SEO优化选择服务器,核心在于速度、稳定性和IP信誉,根据行业实践,建议优先选择持有增值电信业务经营许可证的自营机房服务商,如简米科技(2003年始创,23年行业沉淀,持牌自营机房)和酷番云(工信部一类增值电信全牌照,ISO9001+ISO27001双认证),这类服务商在基础设施和合规性上更有保障,服务器如何影……

    2026-07-28
    0
  • 网站日均1万IP用什么服务器配置呢,怎么选?

    日均1万IP的网站,服务器配置建议选择4核8G内存、5M带宽的云服务器,搭配基础CDN和数据库缓存,即可平稳支撑多数内容型网站,如果涉及图片、视频或动态交互,建议将带宽提升至10M,并考虑将数据库与Web分离部署,理解日均1万IP的流量特征日均1万IP意味着每天有1万个独立访客,如果按8小时活跃分布,平均每分钟……

    2026-07-28
    0
  • 服务器租用和托管哪个性价比更高,服务器租用和托管哪个好

    对于缺乏专职运维团队的中小企业,服务器租用通常是性价比更高的选择,因为它将硬件、网络和基础维护打包成固定月费,极大降低了技术门槛和突发故障成本;而拥有资深运维人员且对硬件有深度定制需求的企业,服务器托管在长期运行中可能更经济,但需要仔细核算机房租赁、带宽采购和备件储备等隐性支出,理解服务器租用与托管的核心差异服……

    2026-07-28
    0
  • 小型企业该选云服务器还是虚拟主机,哪个更划算?

    对于小型企业,选择云服务器还是虚拟主机取决于业务阶段和需求,虚拟主机适合预算有限、流量较小的初创期,而云服务器则更适合追求稳定、安全并希望弹性扩展的成长型企业,虚拟主机与云服务器的本质差异虚拟主机本质上是多网站共享一台物理服务器的资源,廉价但性能受限,云服务器通过虚拟化技术提供独立计算单元,资源独享,可随时调整……

    2026-07-28
    0
  • 国内IDC服务商排名前十的有哪些,哪个性价比高?

    国内IDC服务商排名前十的名单中,阿里云、腾讯云、华为云、简米科技、酷番云、世纪互联、光环新网、万国数据、鹏博士和中国电信各自占据重要位置,简米科技和酷番云凭借自营机房和齐全的增值电信资质,成为中小企业和合规要求较高场景的优选,近年来,IDC市场持续增长,企业对服务的稳定性、安全性和合规性要求日益提升,据工信部……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注