有什么方法可以检查我的sql查询是否表现最佳?我使用sql server 2008.例如我想知道我的查询是否达到了预期的索引。
答案 0 :(得分:2)
是的,包括“实际执行计划”。它位于SQL Management Studio的“查询”菜单中。 执行计划将显示查询使用哪种连接和索引。
答案 1 :(得分:2)
使用执行计划来分析您的查询。有关更多信息,请参阅本教程: http://www.simple-talk.com/sql/performance/execution-plan-basics/
答案 2 :(得分:2)
虽然这些人已经建议分析执行计划(这是正确的!)还有另一种方法,对于不熟悉执行计划的人来说更加友好,在MSSMS中,突出显示您的查询并右键单击选择和点击“分析数据库优化顾问中的查询” - 耐心等待顾问打开并打开数据库选择选项卡,打开后,选择查询与之交互的数据库,然后单击“开始分析”。
这将对所有表,联接等进行粗略检查,它将分析执行计划并告诉您哪些索引“可能”有助于提高查询速度(即避免表扫描)。
不要盲目接受它的建议,首先备份你的数据库,运行分析器 - 应用建议,如果你的查询表现更好则进行基准测试 - 冲洗和放大重复。
例如,如果您的查询正在读取大型表,您可能会发现调优顾问建议创建一个索引,这会花费您大量的磁盘空间,但只能获得较小的速度提升 - 这是您必须问一个问题“它值得吗?” - 这就是为什么试验分析仪的建议通常是个好主意!
在测试之间,请确保清除缓存以确保获得准确的结果:
DBCC FREEPROCCACHE;
DBCC DROPCLEANBUFFERS;
另外,为了更准确地进行基准测试,请使用SET STATISTICS TIME ON;
- 不要依赖于MSSMS内部的计数器 - 它有时会滞后。