原文地址:
http://technet.microsoft.com/zh-cn/library/bb838723.aspx

Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。

常规服务器动态管理对象包括:

  • dm_db_*:数据库和数据库对象

  • dm_exec_*:执行用户代码和关联的连接

  • dm_os_*:内存、锁定和时间安排

  • dm_tran_*:事务和隔离

  • dm_io_*:网络和磁盘的输入/输出

此部分介绍为监控 SQL Server 运行状况而针对这些动态管理视图和函数运行的一些常用查询。

摘录部分精彩SQL如下:

下面的查询显示 CPU 平均占用率最高的前 50 个 SQL 语句。

 
SELECT TOP 50
total_worker_time/execution_count AS [Avg CPU Time],
(SELECT SUBSTRING(text,statement_start_offset/2,(CASE WHEN statement_end_offset = -1 then LEN(CONVERT(nvarchar(max), text)) * 2 ELSE statement_end_offset end -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle)) AS query_text, *
FROM sys.dm_exec_query_stats 
ORDER BY [Avg CPU Time] DESC

下面的查询显示一些可能占用大量 CPU 使用率的运算符(例如 ‘%Hash Match%’、‘%Sort%’)以找出可疑对象。


select *
from 
      sys.dm_exec_cached_plans
      cross apply sys.dm_exec_query_plan(plan_handle)
where 
      cast(query_plan as nvarchar(max)) like '%Sort%'
      or cast(query_plan as nvarchar(max)) like '%Hash Match%'

运行下面的 DMV 查询以查看 CPU、计划程序内存和缓冲池信息。


select 
cpu_count,
hyperthread_ratio,
scheduler_count,
physical_memory_in_bytes / 1024 / 1024 as physical_memory_mb,
virtual_memory_in_bytes / 1024 / 1024 as virtual_memory_mb,
bpool_committed * 8 / 1024 as bpool_committed_mb,
bpool_commit_target * 8 / 1024 as bpool_target_mb,
bpool_visible * 8 / 1024 as bpool_visible_mb
from sys.dm_os_sys_info

下面的示例查询显示已重新编译的前 25 个存储过程。plan_generation_num 指示该查询已重新编译的次数。


select top 25
sql_text.text,
sql_handle,
plan_generation_num,
execution_count,
dbid,
objectid 
from sys.dm_exec_query_stats a
cross apply sys.dm_exec_sql_text(sql_handle) as sql_text
where plan_generation_num > 1
order by plan_generation_num desc

下面的 DMV 查询可用于查找哪些批处理/请求生成的 I/O 最多。如下所示的 DMV 查询可用于查找可生成最多 I/O 的前五个请求。调整这些查询将提高系统性能。


select top 5 
    (total_logical_reads/execution_count) as avg_logical_reads,
    (total_logical_writes/execution_count) as avg_logical_writes,
    (total_physical_reads/execution_count) as avg_phys_reads,
     Execution_count, 
    statement_start_offset as stmt_start_offset, 
    sql_handle, 
    plan_handle
from sys.dm_exec_query_stats  
order by  (total_logical_reads + total_logical_writes) Desc

最新文章

  1. 【USACO 3.1】Stamps (完全背包)
  2. PD PDM模型中关系设置为概念模型样式
  3. Scrum Master 面试题 – 你必须知道的22个Scrum基础知识
  4. TF Boys (TensorFlow Boys ) 养成记(三)
  5. Postfix上的反垃圾邮件的四个方法
  6. android TDD平台插入双卡时,查看允许返回发送报告的选项,去掉勾选,不起作用
  7. Android JNI开发提高篇
  8. 使用java实现阿里云消息队列简单封装
  9. MySQL DATE_SUB()
  10. java常用API的总结(1)
  11. 基于Gecko内核的简单浏览器实现
  12. UE4入门(二)建立和打开项目
  13. UESTC 1697 简单GCD问题(一) 筛法
  14. RNN生产唐诗
  15. kafka服务自动关闭
  16. Win10 主题 美化 动漫
  17. css3-自定义字体
  18. 查看jar包的jdk版本并降级
  19. JS 闭包应用
  20. 二叉树(dfs)

热门文章

  1. Orchard Oracle 支持
  2. 关于mvc中@Html.DropDownListFor和@Html.DropDownList默认值无法选中问题简单总结
  3. VisualSvn server 权限配置
  4. 初学者利用git 上传代码到Coding的简单操作步骤
  5. Spring AOP(配置文件方式)
  6. paip.提升性能---mysql 优化cpu多核以及lan性能的关系.
  7. Effective STL中文版 译序
  8. JS 基本数据类型
  9. JAVA学习绘图颜色及其笔画属性设置字体显示文字
  10. 解决pageControl页面设置无效问题