在SQL Server 2000的时候,我们要想做Performance Tuning的时候,多半都必须用到Profiler或者SQL Tracer来跟踪,这东西一是结果分析起来麻烦,二是对系统资源消耗太大。在SQL Server 2005中,提供了动态管理视图和函数(Dynamic Management Views and Dynamic Management Functions),大大的方便了我们对系统运行情况的监控,故障诊断和性能优化。现在除了Debug以外,已经很少再对生产系统使用Profiler。顺便说一下,SQL Server 2008有一个更好,更强大的Data Collector,可以收集系统信息放入数据仓库,再进行分析的,那时候DBA就更方便了。

下面我会Step by step的介绍,如何使用DMV和DMF来诊断系统情况,介绍到的全部知识都来自于联机丛书(Books Online)。

 

Issue:在新上线一个系统后,我发现数据库服务器的CPU有所升高,达到20-30%,Peak time的时候甚至会达到50%。于是我打开性能监视器,发现SQL Logins/sec平均超过2000。那么,我希望知道,是哪些SQL语句调用次数如此频繁,找到了这些SQL语句之后,就可以进行有针对的优化。

全文地址:http://blog.myspace.cn/luke/archive/2008/01/22/400261243.aspx