SQL优化【基础02】 - 执行计划的执行先后顺序

1.你知道下面这幅图的执行顺序是什么 ?1.2.3.。。。,如果计划过长时候该如何看?

SQL优化【基础02】 - 执行计划的执行先后顺序_第1张图片

2.参考方式1,UE(文本工具:Ultraedit)的列模型鼠标对齐法;如下图通过此法很容易定位:

最先执行的是6,然后是8,当然(7要在6之前,9要在8之前,这个是默认不说的了,都是先访问再连接)

(7,6,9,8)-》6和8通过NESTED LOOPS连接(5)

7->6->9->8->5

SQL优化【基础02】 - 执行计划的执行先后顺序_第2张图片

3.继续对齐,以此类推

5->10 (然后5和10也是通过NL的连接方式)也就是通过第(4)

5->10->4

SQL优化【基础02】 - 执行计划的执行先后顺序_第3张图片


4.依上方法继续类推:

4->14-13-12(是个循环)->11,然后4和11通过FILTER的连接方式(类似于NL,但不同,先不讨论)

4->14->13-12->11->3->2->1->0

SQL优化【基础02】 - 执行计划的执行先后顺序_第4张图片


最终结果:全部叠在一起:7->6->9->8->5->10->4->14->13-12->11->3->2->1->0

简单小结:

(1):对于对齐2列,先上后下,上为左,下为右(先左后右)而并不是以最内嵌为标准,就好比假定还有个15是14的内嵌层,而15比7和9更为内嵌,

但并不影响执行顺序,因为它是由父层决定也就是11决定的;

(2):数据访问方式先于连接方式(执行5前要先执行7,6,9,8)

(3):对于不对齐的2列以其父层的内嵌顺序为准;


你可能感兴趣的:(SQL优化【基础02】 - 执行计划的执行先后顺序)