提高 SQL Server 查询性能

Posted

技术标签:

【中文标题】提高 SQL Server 查询性能【英文标题】:Improve SQL Server query performance 【发布时间】:2011-03-02 07:37:19 【问题描述】:

我想知道是否有任何工具可以为我指定的查询提供优化的 SQL 查询。这样我就可以提高我的数据库以及查询性能。我使用 SQL Server 2008。

提前致谢。

【问题讨论】:

听起来像一根魔杖……你可能需要比这更努力一点。 它叫做***.com。但一定要好好问 【参考方案1】:

旧的 DB 规则仍然适用,不要尝试优化 sql 语句,因为 DB 查询解析器无论如何都会做自己的优化,而是马上做我们最后都做的事情:

创建索引以提高性能

不要误解我的意思,当然 sql 查询可能会写得很笨,因此性能会很差,但只要您创建了一个合理的“正常”查询,查询优化器就会与索引一起完成剩下的工作。

当您查看执行计划时,SQL Server 甚至会告诉您查询是否会明显受益于索引。它甚至会生成 DDL 语句来创建索引,因此您只需复制/粘贴并运行它即可获得查询所需的索引。

【讨论】:

【参考方案2】:

您已经可以观看为您提供 SQL Server Management Studio 的执行计划。

【讨论】:

【参考方案3】:

您可以试试 Redgate,他们的大部分产品都有评估版: Redgate Website

【讨论】:

【参考方案4】:

SQL Server 2005 及更高版本带有查询优化器。这会有所帮助,但工具并不能真正为您提供太多优化建议,因为它们不知道您要完成什么。

您可以尝试查看一些可以优化查询的方法。以下是一些帮助您入门的链接。

Tips, Tricks, and Advice from the MS SQL Query Optimization Team

SQL Server Rules for Optimizing Queries, best practices

Statistics Used by the Query Optimizer in SQL Server 2008

【讨论】:

【参考方案5】:

SQL Server 7.0 / 2000 带有“索引调整向导”,这个功能已经存在很长时间了。

我建议看一下'select * from sys.dm_db_missing_index_details' 它会告诉您哪些索引“缺失”,查看该表然后创建索引很简单

【讨论】:

以上是关于提高 SQL Server 查询性能的主要内容,如果未能解决你的问题,请参考以下文章

提高大型表上的 SQL Server 查询性能

如何提高 SQL Server 查询的性能 [关闭]

如何提高我的查询性能 SQL Server

SQL Server-聚焦过滤索引提高查询性能

利用 SQL Server 过滤索引引提高查询语句的性能

在 SQL Server 2008 中使用 FOR XML PATH 提高 SQL 查询的性能