1

有什么方法可以检查我的 sql 查询是否处于最佳状态?我正在使用 sql server 2008。例如,我想知道我的查询是否达到了预期的索引。

4

3 回答 3

2

使用执行计划来分析您的查询。有关更多信息,请参阅本教程: http ://www.simple-talk.com/sql/performance/execution-plan-basics/

于 2012-05-10T12:30:25.923 回答
2

虽然小伙子们已经建议分析执行计划(这是正确的!),但还有另一种方法对不熟悉执行计划的人更友好,在 MSSMS 中,突出显示您的查询并右键单击选择并点击“分析” Query in Database Tuning Advisor” - 耐心等待顾问打开和数据库选择选项卡打开,一旦打开,选择与您的查询交互的数据库,然后单击“开始分析”。

这将对所有表、连接等进行粗略检查,它将分析执行计划并告诉您哪些索引“可能”有助于加快查询速度(即避免表扫描)。

不要盲目地接受它的建议,首先备份您的数据库,运行分析器 - 应用建议,如果您的查询执行得更好,则进行基准测试 - 冲洗并重复。

例如,如果您的查询正在读取大型表,您可能会发现优化顾问建议创建一个索引,这将花费您大量的磁盘空间但只会获得较小的速度提升——这是您必须提出的问题“这值得么?” – 这就是为什么尝试分析器的建议通常是一个好主意!

在测试之间,请确保清除缓存以确保获得准确的结果:

DBCC FREEPROCCACHE; 
DBCC DROPCLEANBUFFERS; 

此外,为了更准确的基准测试,使用SET STATISTICS TIME ON;- 不要依赖 MSSMS 中的计数器 - 它有时会滞后。

于 2012-05-10T12:57:02.150 回答
2

是的,包括“实际执行计划”。它位于 SQL Management Studio 的查询菜单中。执行计划将显示查询使用哪种连接和索引。

于 2012-05-10T12:28:44.333 回答