2010-03-03 89 views

回答

1

当你的查询全部运行得很快时,所有的东西都是好的,执行计划并不重要。但是,当某些东西运行缓慢时,它们非常重要。它们主要用于帮助调整(加速)缓慢的SQL。如果没有执行计划,您只需猜测要更改哪些内容即可使SQL更快。

以下是他们可以帮助您的最简单的方法。以一个缓慢的查询,并做在SQL Server Management Studio中的查询窗口如下:

1)运行命令:

SET SHOWPLAN_ALL ON 

2)运行缓慢的查询

3)你的查询将不会运行,但执行计划将被返回。

4)看通过在此列中的PhysicalOp列输出为字SCAN任何文本中,这是通常导致该减速查询的一部分。分析您的连接和索引使用情况(与输出的这一行相关),如果您可以消除扫描,则通常会提高查询速度。

在输出中有可能有用的列(TotalSubTreeCost等),您将在学习如何阅读执行计划和调整慢查询时熟悉它们。

+0

你是否意味着所有 - 而不是 - 第一行的屁股:) – 2010-03-03 12:45:43

+0

@Fadrian,是的我做了 – 2010-03-03 12:47:36

1

当您需要对特定查询执行性能分析时。

看一看SQL Server Query Execution Plan Analysis

当谈到时间来分析特定查询的性能 ,最好的方法之一 是查看 查询执行计划。查询 执行计划概述了SQL 服务器查询优化器实际运行 (或将运行)特定查询的方式。这 信息,如果它非常有价值,它 时间来找出为什么特定的 查询运行缓慢。

1

这有助于确定长时间运行的查询中发生哪些瓶颈。只需知道服务器如何执行复杂查询,就可以获得令人印象深刻的性能改进。

如果我没有记错的话,它也可以确定好索引的候选对象,这是提高性能的另一种方法。

1

这些计划描述了SQL Server如何执行您的查询。这是SQL Server查询优化器基于成本的算法的结果,它提出了一个计划,以便以最佳方式达到最终结果。

这是有用的,因为它会告诉你,时间在查询中度过的,是否正在使用或没有索引,正在对这些指标做了什么类型的进程(扫描,搜索)等

所以如果您的查询执行效果不佳,那么执行计划将突出显示最耗时的部件,并允许您查看需要优化的内容(例如,可能是缺少的索引,可能是写入效率低下的查询导致索引扫描而不是查找) 。

相关问题