SQL语句优化提升整体效能

发表于:2012-7-04 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Jerry Tian    来源:51Testing软件测试网采编

  参考当前语句的估计的执行计划或实际的执行计划,分析当前语句执行时SQL Server 查询优化器所选择的数据检索方法。

  实际的执行计划显示了本次执行所使用的执行计划。该图应该从右向左看,由下向上看,如果是多个表连接查询的话,这里也会显示多个执行步骤,你可以检查每一个步骤相关的操作相关信息,如IO开销,CPU开销,估计的行数,有没有使用到Index,以及使用的何种Index等信息。行数过多则需要留意了。所使用的Indexl类型也是需要关注的信息之一。

  下面是执行计划中一些概念的简单说明:

工具提示项  说明 

Physical Operation 

使用的物理运算符,例如 Hash Join 或 Nested Loops。以红色显示的物理运算符表示查询优化器已发出警告,例如丢失列统计信息或丢失联接谓词。这可能导致查询优化器选择比预期的效率低的查询计划。有关列统计信息的详细信息,请参阅使用统计信息提高查询性能。

当图形执行计划建议创建统计信息、更新统计信息或创建索引时,使用 SQL Server Management Studio 对象资源管理器中的快捷菜单可以立即创建或更新丢失的列统计信息和索引。有关详细信息,请参阅索引操作指南主题。 

Logical Operation 

与物理运算符匹配的逻辑运算符,如 Inner Join 运算符。逻辑运算符列在物理运算符之后,两者均位于工具提示的顶部。 

Estimated Row Size 

操作符生成的行的估计大小(字节)。 

Estimated I/O Cost 

用于执行操作的所有 I/O 活动的估计开销。此值应尽可能低。 

Estimated CPU Cost 

用于执行操作的所有 CPU 活动的估计开销。 

Estimated Operator Cost 

用于执行此操作的查询优化器的开销。此操作的开销以占查询总开销的百分比的形式显示在括号中。由于查询引擎选择最高效的操作来执行查询或执行语句,因此此值应尽可能低。 

Estimated Subtree Cost 

查询优化器执行此操作及同一子树内位于此操作之前的所有操作的总开销。 

Estimated Number of Rows  

运算符生成的行数。 

  综合以上介绍的几种参考信息的方法,一般都可以确定问题sql的问题所在,然后对症下药,剩下的就是进行针对性的修改了,这里只是抛砖引玉,聪明的你一定会有方法解决的。

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号