zoukankan      html  css  js  c++  java
  • 数据库优化实践【信息跟踪篇】

    关联性能计数器日志和SQL事件探查器跟踪信息进行深入的分析

      通过SQL事件探查器可以找出哪些SQL执行时间过长,但它却不能给出导致执行时间过长的上下文信息,但性能监视工具可以提供独立组件的性能统计数据(即上下文信息),它们正好互补。

      如果相同的查询在生产库和测试库上的执行时间差别过大,那说明测试服务器的负载,环境和查询执行上下文都和生产服务器不一样,因此需要一种方法来模拟生产服务器上的查询执行上下文,这时就需要结合SQL事件探查器的跟踪信息和性能监视工具的性能计数器日志。

      将二者结合起来分析可以更容易找出性能问题的根本原因,例如,你可能发现在生产服务器上每次查询都需要10秒,CPU利用率达到了100%,这时就应该放下SQL调优,先调查一下为什么CPU利用率会上升到100%。

      关联SQL事件探查器跟踪信息和性能计数器日志的步骤如下:

      1)创建性能计数器日志,包括下列常见的性能计数器,指定“手动”方式启动和停止计数器日志:

      --网络接口输出队列长度

      --处理器\%处理器时间

      --SQL Server:缓冲管理器缓冲区缓存命中率

      --SQL Server:缓冲管理器页面生命周期

      --SQL Server:SQL统计批量请求数/秒

      --SQL Server:SQL统计SQL 编译

      --SQL Server:SQL统计SQL 重新编译/秒

      创建好性能计数器日志,但不启动它。

      2)使用SQL事件探查器TSQL Duration模板创建一个跟踪,添加“开始时间”和“结束时间”列跟踪,同时启动事件探查器跟踪和前一步创建的性能计数器日志;

      3)跟踪到足够信息后,同时停掉SQL事件探查器跟踪和性能计数器日志,将SQL事件探查器跟踪信息保存为一个.trc文件;

      4)关闭SQL事件探查器跟踪窗口,再使用事件探查器打开.trc文件,点击“文件”*“导入性能数据”关联性能计数器日志,此时会打开一个文件浏览器窗口,选择刚刚保存的性能计数器日志文件进行关联;

      5)在打开的窗口中选择所有计数器,点击“确定”,你将会看到下图所示的界面,它同时显示SQL事件探查器的跟踪信息和性能计数器日志;

      图 28 关联SQL事件探查器和性能监视工具输出

      6)在事件探查器跟踪信息输出中选择一条TSQL,你将会看到一个红色竖条,这代表这条TSQL执行时相关计数器的统计数据位置,同样,点击性能计数器日志输出曲线中高于正常值的点,你会看到对应的TSQL在SQL事件探查器输出中也是突出显示的。

      我相信你学会如何关联这两个工具的输出数据后,一定会觉得非常方便和有趣。

      小结

      诊断SQL Server性能问题的工具和技术有很多,例如查看SQL Server日志文件,利用调优顾问(DTA)获得调优建议,无论使用哪种工具,你都需要深入了解内部的细节原因,只有找出最根本的原因之后,解决性能问题才会得心应手。

      本系列最后一篇将介绍如何优化数据文件和应用分区。

  • 相关阅读:
    JQuery Ajax动态生成表格
    简单模拟JQuery框架
    事务和锁学习
    Js面向对象和数据类型内存分配
    Spring.Net学习 控制反转(IoC)和面向切面编程(AOP)
    html <pre>标签
    裸眼3D
    sysobjects syscolumns和SysTypes笔记
    JQuery EasyUi练习Demo(带源码)
    Oracle 游标使用大全
  • 原文地址:https://www.cnblogs.com/hnlshzx/p/3506171.html
Copyright © 2011-2022 走看看