性能调优第二篇-执行计划
来源:互联网 发布:vb获取网页文本框焦点 编辑:程序博客网 时间:2024/06/05 22:51
前言
在我们拿到一个SQL 语句后,要尝试对他进行调优第一件事是格式化,那第二件事就是查看SQL 的执行计划。
什么是执行计划
SQL Server查询处理器由两个组件组成:查询优化器和查询执行引擎。查询优化器负责生成好的执行计划。查询执行引擎接受查询优化器生成的执行。查询执行涉及许多功能,包括从表和索引检索和更新数据,以及连接和聚合等操作。总之,SQL 语句只能告诉数据库我们想要什么数据。执行计划就是如何去取得这些数据的具体方法。
查看执行计划
图中的两个按钮分别用户查看估计的执行计划和实际的执行计划
估计的执行计划:就是在SQL 还没执行前优化器产生的执行计划
实际的执行计划:需要实际的去执行SQL 语句才能看到。
1.估计的执行计划和实际的执行计划可能会有差异
2.实际的执行计划可以看到实际的行数。如果实际的行数和估计的行数差异很大的时候。我们就需要注意。有可能产生的执行就会不是最优的。所以,如果在条件允许的情况下,尽量查看实际的执行计划
分类
图形化的执行计划
阅读顺序是的从右往左,从上到下。对于初学者,图形化的执行计划是最直观的。所以,后续的博客也主要以这种形式为主。图中每一个图形就是一个操作符。
比如: 就是表示对表#tt进行扫描。
这里一个需要重点关注,就是每个操作符的开销。开销占比越大,我们就需要特别关注他。另外需要注意的是:这里的百分百值加起来可能会超过100%。这算是一个BUG。
不过就算超过100%,这个开销也是很有参考意义的。相对值越大的开销也越大。
文本的执行计划
在执行SQL查询之前,运行 SET SHOWPLAN_ALL ON. 就会输出如下的文本形式的执行计划。阅读顺序是从内到外。具体舒心如下图所标示:
XML格式
使用下面的语句开启:
SET STATISTICS XML ON .阅读方式和文本形式的类型。从内向外。每一个<Relop> 就是一个操作符。上面有跟这个操作相关的信息。这种形式的执行计划我用得很少。感觉不如前面2种的直观。
总结
文章主要是讲什么是执行计划,和如何查看执行计划。下一篇文章会分享 常见的运算符。
- 性能调优第二篇-执行计划
- 性能调优第三篇-执行计划常见操作符
- oracle性能调优-执行计划
- 数据库性能调优技术─嵌套循环执行计划
- ORACLE性能调优之执行计划的使用
- SQL Server性能调优之执行计划深度剖析 第一节 浅析SQL执行的过程
- SQL Server性能调优之执行计划深度剖析 第一节 浅析SQL执行的过程
- 查询优化器内核剖析第二篇:产生候选执行计划&执行计划成本估算
- sql性能之执行计划
- 数据库性能调优技术系列文章(2)--深入理解单表执行计划
- 数据库性能调优技术系列文章(3)--深入理解嵌套循环执行计划
- 数据库性能调优技术系列文章(4)--深入理解散列连接执行计划
- 数据库性能调优技术 --深入理解单表执行计划
- 数据库性能调优技术 --深入理解嵌套循环执行计划
- 数据库性能调优技术 --深入理解散列连接执行计划
- SQL性能调优之Insert语句干扰了正确的执行计划的一次记录
- SQL Server 性能调优 之执行计划(Execution Plan)调优
- oracle笔记整理14——性能调优之oracle执行计划
- C语言轻松高效学习方法之:多种方法实现
- 第一次玩博客
- 题目372-巧克力
- tablay fragment viewpaper
- HTML2.z
- 性能调优第二篇-执行计划
- Neplan v5.5.8 1CD+Magus Antennamagus v1.0 1CD(天线设计)
- 计蒜客 Skiing
- java集合
- uva1600 (bfs迷宫)
- mybatis自动生成器的配置和使用方法
- 嵌入式软件工程师/linux c程序员 面试经验总结
- 王爽 《汇编语言》 读书笔记 十二 内中断
- 包含min函数的栈java实现