当前位置:首页 > 网络编程 > 数据库 > SQL Server > 一些文档中没有介绍的SQL Server DBCC命令

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

点击次数:32 次 发布日期:2008-12-09 22:00:50 作者:源代码网
源代码网推荐

源代码网整理以下这篇论坛文章(赛迪网技术社区)主要介绍了一些特别有用但文档中没有介绍的sql server DBCC命令,详细内容请参考下文:

源代码网整理以下以下是一些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

源代码网整理以下Exec 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是必输参数。

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

源代码网整理以下例子:

源代码网整理以下DECLARE @intDBID INTEGER SET @intDBID = (SELECT dbid FROM master.dbo.sysdatabases WHERE name = "database_name")

源代码网整理以下DBCC FLUSHPROCINDB (@intDBID)

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

源代码网整理以下◆6.DBCC MEMORYSTATUS:列出一个详细分类,分类中显示sql server缓存如何分配,包括缓存的活动。

源代码网整理以下◆7.DBCC PAGE:用于查看sql server 中一个数据页的内容

源代码网整理以下例:

源代码网整理以下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

源代码网整理以下结果:

源代码网整理以下Item Status

源代码网整理以下------------------------- -----------

源代码网整理以下Memory Used (8k Pages) 5446

源代码网整理以下Number CSql Objects 29098

源代码网整理以下Number False Hits 425490

源代码网整理以下其中:

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

源代码网整理以下Number CSql Objects:表明已经在高速缓存中的TSQL的语句的总数

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

源代码网整理以下◆9.DBCC SQLPERF():这个命令包括了那些有文档说明和没有说明的选项。

源代码网整理以下DBCC SQLPERF ( LOGSPACE )

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

源代码网整理以下DBCC SQLPERF(UMSSTATS):提供有关sql server 线程管理情况的统计信息

源代码网整理以下运行这个命令,结果如下:

源代码网整理以下Statistic Value

源代码网整理以下-------------------------------- ------------------------

源代码网整理以下Scheduler ID 0.0

源代码网整理以下num users 17.0

源代码网整理以下num runnable 0.0

源代码网整理以下num workers 13.0

源代码网整理以下idle workers 6.0

源代码网整理以下work queued 0.0

源代码网整理以下cntxt switches 76752.0

源代码网整理以下cntxt switches(idle) 47139.0

源代码网整理以下Scheduler Switches 0.0

源代码网整理以下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读和写的信息

源代码网整理以下DBCC SQLPERF(RASTATS):提供SQL server read-ahead 活动的信息

源代码网整理以下DBCC SQLPERF (THREADS):提供每个sql server线程的I/O,CPU及内存使用情况的信息。

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华