当前位置: 电脑软硬件应用网 > 设计学院 > 网络编程 > 数据库 > 正文 |
|
|||
一些文档中没有介绍的SQL Server DBCC命令 | |||
2008-7-27 19:53:31 文/大海 出处:赛迪网 | |||
这篇文章(电脑软硬件应用网)主要介绍了一些特别有用但文档中没有介绍的sql server DBCC命令,详细内容请参考下文: 以下是一些sql server的DBCC命令,可以在优化 sql server时使用。
例: 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:这些列的值表明有多少特定的对象已经被写进程从缓存总移走。这些数值越低,越好。
在测试时保证以前的存储过程计划不会对测试结果造成负面影响,可以使用这个存储过程。 例子: DECLARE @intDBID INTEGER SET @intDBID = (SELECT dbid FROM master.dbo.sysdatabases WHERE name = 'database_name') DBCC FLUSHPROCINDB (@intDBID)
例: 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- 一个逻辑页号
例: 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语句时会出现错误的命中。在理想的情况下,这个数字应该尽可能地小。
提供有关所有数据库中的事务日志空间使用情况的统计信息。具体说明可参考联机帮助。
运行这个命令,结果如下: 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 SQLOERF(IOSTATS):提供主要的SQL server读和写的信息 DBCC SQLPERF(RASTATS):提供SQL server read-ahead 活动的信息 DBCC SQLPERF (THREADS):提供每个sql server线程的I/O,CPU及内存使用情况的信息。 |
|||
关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 | |
Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号 |