文档中没有介绍的SQL Server DBCC命令(一)

日期: 2008-07-29 作者:blueseasand 来源:TechTarget中国 英文

  以下是一些SQL Server的DBCC命令,可以在优化SQL Server时使用。


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


  例:







DBCC CACHESTATS 


  执行结果(缩略) 







Object Name Hit Ratio 
———— ————- 
  Proc 0.86420054765378507 
  Prepared 0.99988494930394334 
  Adhoc 0.93237136647793051 
  ReplProc 0.0 
  Trigger 0.99843452831887947 
  Cursor 0.42319205924058612 
  &#101xec Cxt 0.65279111666076906 
  View 0.95740334726893905 
  Default 0.60895011346896522 
  UsrTab 0.94985969576133511 
  SysTab 0.0 
  Check 0.67021276595744683 
  Rule 0.0 
  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,将所有脏的缓存写入磁盘,这样在运行DBCC RROPCLEANBUFFERS 时,可以保证所有的数据缓存被清理,而不是其中的一部分。


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


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

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐