[英]Understanding execution plan in SQL Server
我需要了解如何阅读执行计划,我正在阅读一些文件,但对我来说并不清楚。
如何判断我的查询是否执行正常?
这是什么意思:
坦率地说,这被否决了(见我的评论)。 但是,您最好阅读 Microsoft 的 Technet 关于基于成本的优化器的文章,该文章涵盖了您所询问的内容。
我会这么说,根据我的经验,如果执行计划推荐一个索引,那么我建议你认真考虑它,因为性能提升通常会实现,即使索引几乎没有意义(即 SQL 服务器很好,但是不完美,知道自己想要什么)。 现在,如果您添加一个索引并且执行计划推荐了另一个索引,那么您可能需要考虑查看您返回的列; 你是如何加入的; 和/或您的餐桌设计。
最终,您试图让执行计划显示聚集索引查找(最佳),然后是聚集索引扫描(OK)、索引查找、索引扫描,并避免表扫描(即堆)。 当然,这是我自己的看法。
https://technet.microsoft.com/en-us/library/2007.11.sqlquery.aspx
其他轻读:
http://www.dbjournal.ro/archive/16/16_4.pdf
对于从业者指南和讨论:
http://logicalread.com/sql-server-primary-key-vs-clustered-index-part-1-mb01/
http://logicalread.com/sql-server-primary-key-vs-clustered-index-part-2-mb01/
http://logicalread.com/sql-server-primary-key-vs-clustered-index-part-3-mb01/
马克荷马在这里有一个很好的答案:
https://meta.stackoverflow.com/questions/382341/how-to-include-an-sql-server-execution-plan-to-a-stack-overflow-question
Brent Ozar 网站的链接非常有用。 当您抓取计划时,请记住在运行之前将 SET STATISTIC XML ON 并在查询结束时将其设置为 OFF 以获得更准确的计划。
布伦特的网站:
https://www.brentozar.com/pastetheplan/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.