编辑推荐: |
本文主要通过一下几个方面介绍:使用SQL
DMV查找慢速查询、通过APM解决方案查询报告、SQL Server扩展事件、SQL
Azure查询性能洞察等相关内容。
本文来自博客园,由火龙果软件Anna编辑、推荐。
|
|
1.使用SQL DMV查找慢速查询
SQL Server的一个重要功能是内置于其中的所有动态管理视图(DMV)。它们有数十种,可以提供有关各种主题的丰富信息。
有几个DMV提供有关查询统计信息,执行计划,最近查询等的数据。这些可以一起使用,以提供一些惊人的见解。
例如,下面的查询可用于查找使用最多读取,写入,工作时间(CPU)等的查询。
查询结果如下所示。下面的图片来自我制作的营销应用程序。您可以看到一个特定查询(前一个)占用了所有资源。
通过查看此内容,我可以复制该SQL查询,看看是否有某种方法可以改进它,添加索引等。
优点:始终可用的基本汇总统计信息。缺点:不告诉你调用查询的是什么。无法在查看随时间调用查询时进行可视化。
2.通过APM解决方案查询报告
许多应用程序性能管理 (APM)工具的一个重要特性是它们能够跟踪SQL查询。例如, Retrace跟踪多个数据库提供程序(包括SQL
Server)的SQL查询。
Retrace可以告诉您查询执行了多少次,平均需要多长时间以及调用它的事务。这对于SQL性能调优来说是非常有价值的信息。
APM解决方案通过在运行时针对应用程序代码执行轻量级性能分析来收集此数据。
以下是Retrace应用程序仪表板的屏幕截图,其中显示了特定应用程序,哪些SQL查询占用时间最长。
回归热门SQL查询
Retrace收集有关正在执行的每个SQL查询的性能统计信息。您可以搜索特定查询以寻找潜在问题。
RETRACE查看所有SQL查询
通过选择单个查询,您可以查看该查询随时间调用的频率以及所需的时间。您还可以查看哪些网页使用SQL查询以及它们的性能如何受其影响。
随着时间的推移回溯SQL性能
由于Retrace是一个轻量级代码分析器并捕获ASP.NET请求跟踪,因此它甚至可以向您显示代码正在执行的操作的完整上下文。
下面是一个捕获的跟踪,它显示了所有SQL查询以及有关代码执行操作的其他详细信息。Retrace甚至可以在同一视图中显示日志消息。另请注意,它显示了正在执行查询的服务器地址和数据库名称。您还可以查看返回的记录数。
回溯WEB事务跟踪
如您所见,Retrace提供全面的SQL报告功能,作为其APM功能的一部分。它还提供围绕SQL查询的多个监视和警报功能。
优点:跨应用程序,每个应用程序和每个查询的详细报告。可以显示详细说明查询使用方式的事务跟踪。每月只需10$。一旦安装就一直运行。缺点:不提供每个查询的读取或写入次数。
3. SQL Server Profiler(已弃用!)
在SQL Server Profiler中已经存在了很长一段时间。如果您试图实时查看针对您的数据库执行的SQL查询,那么它非常有用。
注意:Microsoft已宣布SQL Server Profiler已被弃用!
SQL事件探查器捕获有关您与SQL Server交互的非常详细的事件。
登录连接,断开连接和失败
SELECT,INSERT,UPDATE和DELETE语句
RPC批处理状态调用
存储过程的开始和结束
存储过程中语句的开始和结束
SQL批处理的开始和结束
写入SQL Server错误日志的错误
在数据库对象上获取或释放的锁
一个打开的光标
安全权限检查
SQL SERVER PROFILER
优点:非常详细的数据。缺点:你必须手动打开它。这会强制您重新创建要捕获的场景。它最终会转向支持扩展事件。
4. SQL Server扩展事件
SQL事件探查器已被SQL Server扩展事件替换。这肯定会激怒很多人,但我可以理解为什么微软会这样做。
扩展事件通过事件跟踪(ETW)工作。这是所有Microsoft相关技术公开诊断数据的常用方法。
ETW提供了更大的灵活性。作为开发人员,我可以轻松地从SQL Server中获取ETW事件以收集用于自定义用途的数据。这真的很酷,非常强大。
优点:更容易启用和运行。更容易开发定制解决方案。缺点:因为它是相当新的,大多数人可能没有意识到它。
5. SQL Azure查询性能洞察
我将假设SQL Azure的性能报告是建立在扩展事件之上的。在Azure门户中,您可以访问各种非常有用的性能报告和优化提示。
注意:这些报告功能仅适用于SQL Azure上托管的数据库。
在下面的屏幕截图中,您可以看到SQL Azure如何轻松使用使用最多CPU,Data IO和Log
IO的查询。它内置了一些很棒的基本报告。
SQL AZURE热门查询
您还可以选择单个查询并获取更多详细信息以帮助进行SQL性能调整。
SQL AZURE查询详细信息
优点:很棒的基本报告。缺点:仅适用于Azure。没有跨多个数据库的报告。
总结
下次需要使用SQL Server进行一些性能调整时,您可以考虑使用一些选项。可能的情况是,您将使用多个这些工具,具体取决于您要完成的任务。
如果您使用的是像Retrace这样的APM解决方案,请务必检查它内置的SQL性能功能
|