设为首页 加入收藏

TOP

基于RULE的优化器(学习笔记)(四)
2015-07-24 11:36:21 来源: 作者: 【 】 浏览:13
Tags:基于 RULE 优化 学习 笔记
-------------------------- 4 -access("T1"."EMPNO"="T2"."EMPNO") filter("T1"."EMPNO"="T2"."EMPNO") Note ----- - rulebased optimizer used (consider using cbo) Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 6 consistent gets 0 physical reads 0 redo size 778 bytes sent via SQL*Net toclient 524 bytes received via SQL*Netfrom client 2 SQL*Net roundtrips to/fromclient 2 sorts (memory) 0 sorts (disk) 14 rows processed 10:36:15 scott@felix SQL>

?

?

我们发现,驱动表变为emp_temp了。

?

说明,当目标SQL有两条或者两条以上的执行路径的等级值相同时,我们确定可以通过改变目标SQL中所涉及的各个对象在该SQL文本中出现的先后顺序来影响RBO对其执行计划的选择。

?

?

注意:以上几个实验都是就RBO模式。RBO不支持HASH join。

?

?

Emp有主键,emp_temp上empno列没有索引。

?

10:43:50 scott@felix SQL>Select t1.mgr,t2.deptno from emp  t1,emp_temp t2
10:44:00   2   Where t1.empno=t2.empno;

14 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 367190759

-------------------------------------------------
| Id  | Operation                    | Name     |
-------------------------------------------------
|   0 | SELECT STATEMENT             |          |
|   1 |  NESTED LOOPS                |          |
|   2 |   NESTED LOOPS               |          |
|   3 |    TABLE ACCESS FULL         | EMP_TEMP |
|*  4 |    INDEX UNIQUE SCAN         | PK_EMP   |
|   5 |   TABLE ACCESS BY INDEX ROWID| EMP      |
-------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   4 - access("T1"."EMPNO"="T2"."EMPNO")

Note
-----
   - rule based optimizer used (consider using cbo)


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
         22  consistent gets
          0  physical reads
          0  redo size
        778  bytes sent via SQL*Net to client
        524  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         14  rows processed

10:44:00 scott@felix SQL>


?

?

修改该SQL文本的表顺序:

?

Select t1.mgr,t2.deptno from emp_temp t2,emp  t1
 Where t1.empno=t2.empno;
 
10:44:00 scott@felix SQL>Selectt1.mgr,t2.deptno from emp_temp t2, emp t1
10:49:57  2    Where t1.empno=t2.empno;
 
14 rows selected.
 
 
Execution Plan
----------------------------------------------------------
Plan hash value: 367190759
 
-------------------------------------------------
| Id  |Operation                    | Name     |
-------------------------------------------------
|   0 |SELECT STATEMENT             |          |
|   1 |  NESTED LOOPS                |          |
|   2 |   NESTED LOOPS               |         |
|   3 |   TABLE ACCESS FULL         |EMP_TEMP |
|*  4 |    INDEX UNIQUE SCAN         | PK_EMP   |
|   5 |   TABLE ACCESS BY INDEX ROWID| EMP      |
-------------------------------------------------
 
Predicate Information (identified by operationid):
---------------------------------------------------
 
   4 -access("T1"."EMPNO"="T2"."EMPNO")
 
Note
-----
   - rulebased optimizer used (consider using cbo)
 
 
Statistics
----------------------------------------------------------
         1  recursive calls
         0  db block gets
        22  consistent gets
         0  physical reads
         0  redo size
       778  bytes sent via SQL*Net toclient
       524  bytes received via SQL*Netfrom client
         2  SQL*Net roundtrips to/fromclient
         0  sorts (memory)
         0  sorts (disk)
        14  rows processed
 
10:49:57 scott@felix SQL>

?

?

可以看出执行计划走的是嵌套循环,且驱动表依然是表EMP_TEMP,这就证明:如果RBO仅凭目标SQL各条执行路径等级值的大小就可以

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇归档模式下恢复没有备份的数据文件 下一篇(四)概率

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)