SQL Server性能调整技巧

查询调优通常是提高SQL Server性能的最快方法。大多数情况下,系统级服务器性能(内存,处理器等)的改进措施无效且昂贵。专家开发人员认为,大多数性能问题都可以归因于查询质量不佳和索引编制效率低下,而不是硬件约束。实际上,某些性能问题只能通过查询调整来解决。

但是,当涉及到SQL Server性能查询调优时,DBA通常会从何处着手解决这个问题。您如何评估查询?您如何发现查询编写方式中的缺陷?您如何发现潜在的改进机会?查询调优是科学的一半,也是艺术的一半,因为没有正确或错误的答案,只是给定情况下最合适的解决方案。

这里有12个快速提示,可以帮助DBA以可衡量的方式提高查询性能,同时可以确定特定的更改实际上提高了查询速度。

1.基本查询分析

DBA需要对所有层具有可见性,并需要有关昂贵查询的信息,以便找出根本原因。有效的调优需要了解最重要的SQL语句,最重要的等待类型,SQL计划,阻塞的查询,资源争用以及缺少索引的影响。从基础开始-在潜入之前准确了解您要处理的内容会有所帮助。

技巧1:了解表和行数
首先,请确保您确实在对表进行操作,而不是对视图或表值函数进行操作。表值函数有其自身的性能影响。您可以使用SSMS将鼠标悬停在查询元素上以检查这些详细信息。通过查询DMV检查行数。
技巧2:检查查询过滤器,WHERE和JOIN子句,并注意过滤后的行数
如果没有过滤器,并且返回了大多数表,请考虑是否需要所有这些数据。如果根本没有过滤器,这可能是一个危险信号,需要进一步调查。这确实会降低查询速度。
技巧3:了解表的选择性
根据前两个技巧中的表和过滤器,您将了解要使用的行数或实际逻辑集的大小。我们建议将SQL图表用作评估查询和查询选择性的强大工具。
提示4:分析其他查询列
请仔细检查SELECT *或标量函数,以确定是否涉及其他列。您带回的列越多,执行计划使用某些索引操作的最佳列可能越少,这反过来又可能降低性能。

2.高级查询分析

技巧5:了解和使用约束
会有所帮助在开始进行调整时,了解和使用约束会有所帮助。查看现有的键,约束,索引,以确保避免重复工作或避免已经存在的索引重叠。要获取有关索引的信息,请运行sp_helpindex存储过程:

提示6:检查实际的执行计划(而不是估计的计划)。
估计的计划使用估计的统计信息来确定估计的行;实际计划在运行时使用实际统计信息。如果实际计划和估计计划不同,则可能需要进一步调查。

提示7:记录结果,重点放在逻辑I / O的数量上
如果不记录结果,则无法确定更改的真正影响。
提示8:根据您的发现调整查询并一次进行小的,单个更改,一次进行
太多更改可能是无效的,因为它们可以相互抵消!首先寻找最昂贵的操作。没有正确或错误的答案,只有针对给定情况的最佳选择。
技巧9:重新运行查询并记录所做更改的结果
如果您看到逻辑I / O有所改善,但是改善还不够,请返回技巧8,以检查可能需要调整的其他因素。一次进行一次更改,重新运行查询并比较结果,直到对您已解决所有可能的昂贵操作感到满意为止。
技巧10:如果仍然需要改进,请考虑调整索引以减少逻辑I / O
添加或调整索引并不总是最好的选择,但是如果您不能更改代码,则可能是唯一的选择你可以做。您可以考虑现有索引,覆盖索引和筛选索引以进行改进。
提示11:重新运行查询并记录结果
如果进行了调整,请重新运行查询并再次记录这些结果。
提示12:设计愚蠢的
Lookout,以查找经常遇到的性能抑制因素,例如:代码优先生成器,通配符滥用,标量函数,嵌套视图,游标和逐行处理。

3.使用数据库性能监视工具来简化查询调整。

传统的数据库监视工具着重于健康指标。当前的应用程序性能管理工具提供了提示,但并不能帮助找到根本原因。

版权申明:本站文章均来自网络,如有侵权,请联系01056159998 邮箱:itboby@foxmail.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

猜你还会喜欢下面的内容

    无相关信息

中国领先的互联网域名及云服务提供商

为您提供域名,比特币,P2P,大数据,云计算,虚拟主机,域名交易最新资讯报道

域名注册云服务器