当前位置:  开发笔记 > 数据库 > 正文

优化性能低下的查询需要哪些步骤?

如何解决《优化性能低下的查询需要哪些步骤?》经验,为你挑选了2个好方法。

我知道这是一个广泛的问题,但我继承了几个表现不佳的人,需要对他们进行严格的优化.我想知道优化所涉及的最常见步骤是什么.那么,当你面对同样的情况时,你们有些人采取了什么措施?

相关问题:
可以应用哪些通用技术来优化SQL查询?

roman m.. 15

    查看查询分析器中的执行计划

    查看哪个步骤成本最高

    优化步骤!

    返回第1步[thx to Vinko ]


tbreffni.. 7

在SQL Server中,您可以查看查询分析器或Management Studio中的查询计划.这将告诉您在每批语句中花费的大部分时间.您需要查找以下内容:

表扫描; 这意味着您完全缺少索引

索引扫描; 您的查询可能没有使用正确的索引

查询中每个步骤之间的箭头粗细告诉您该步骤生成的行数,非常粗的箭头表示您正在处理大量行,并且可以指示某些连接需要进行优化.

其他一些一般提示:

大量条件语句(例如多个if-else语句)可能导致SQL Server不断重建查询计划.您可以使用Profiler进行检查.

确保不同的查询不会相互阻塞,例如阻止select语句的更新语句.通过在SQL Server select语句中指定(nolock)提示可以避免这种情况.

正如其他人所提到的,请尝试使用Management Studio中的性能调优向导.

最后,我强烈建议您创建一组负载测试(使用Visual Studio 2008测试版),您可以使用它来模拟应用程序处理大量请求时的行为.某些SQL性能瓶颈仅在这些情况下表现出来,并且能够重现它们使得修复更容易.



1> roman m..:

    查看查询分析器中的执行计划

    查看哪个步骤成本最高

    优化步骤!

    返回第1步[thx to Vinko ]



2> tbreffni..:

在SQL Server中,您可以查看查询分析器或Management Studio中的查询计划.这将告诉您在每批语句中花费的大部分时间.您需要查找以下内容:

表扫描; 这意味着您完全缺少索引

索引扫描; 您的查询可能没有使用正确的索引

查询中每个步骤之间的箭头粗细告诉您该步骤生成的行数,非常粗的箭头表示您正在处理大量行,并且可以指示某些连接需要进行优化.

其他一些一般提示:

大量条件语句(例如多个if-else语句)可能导致SQL Server不断重建查询计划.您可以使用Profiler进行检查.

确保不同的查询不会相互阻塞,例如阻止select语句的更新语句.通过在SQL Server select语句中指定(nolock)提示可以避免这种情况.

正如其他人所提到的,请尝试使用Management Studio中的性能调优向导.

最后,我强烈建议您创建一组负载测试(使用Visual Studio 2008测试版),您可以使用它来模拟应用程序处理大量请求时的行为.某些SQL性能瓶颈仅在这些情况下表现出来,并且能够重现它们使得修复更容易.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有