分享到:
发表于 2009-01-12 13:16:11 楼主 | |
Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 SORT (AGGREGATE) 2 1 TABLE ACCESS (BY INDEX ROWID) OF 'USER_INFO' 3 2 NESTED LOOPS 4 3 TABLE ACCESS (FULL) OF 'USER_NUM_TABLE' 5 3 INDEX (RANGE SCAN) OF 'PK_USER_INFO' (UNIQUE) 请问以上执行计划语句是如何看的?语句的执行顺序是什么?为什么?请祥解,多谢! |
|
楼主热贴 |
发表于 2009-01-12 13:16:11 1楼 | |
左边的两列数字,第一列表示这条计划的编号,第二列是这条计划的父计划的编号;如果一条计划有子计划,那么先要执行其子计划; 在这个例子中:从第一条编号为0的(SELECT STATEMENT Optimizer=CHOOSE)开始,他有个子计划1(SORT (AGGREGATE)),然后1有个子计划2,2有子计划3, 3 有子计划4和5,4是3的第一个子计划,所以先执行4(TABLE ACCESS (FULL) OF 'USER_NUM_TABLE'),再执行5(INDEX (RANGE SCAN) OF 'PK_USER_INFO' (UNIQUE)),4和5执行完返回到其父计划3(NESTED LOOPS),3把4和5取到的rows进行nested loops,结果再返回到2,再到1排序,再到0select |
|
针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员 、 查看帮助 或 给我提意见