有关层次化查询条件(where和level的比较)

[复制链接]
查看11 | 回复7 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
以下引用> page 623的话:
在CONNECT BY 子句中处理它比用WHERE子句中放置了LEVELset autotrace trace explain;
第一种方法:
SQL> select lpad(' ',(level-1)*2,' ')||ename ename
2from emp
3start with mgr is null
4connect by prior empno = mgr and levelselect lpad(' ',(level-1)*2,' ')||ename ename
2from emp
3where level <= 3
4start with mgr is null
5connect by prior empno = mgr
6/
Execution Plan
----------------------------------------------------------
0SELECT STATEMENT Optimizer=CHOOSE
10 FILTER
21 CONNECT BY (WITH FILTERING)
32 NESTED LOOPS
43 TABLE ACCESS (FULL) OF 'EMP'
53 TABLE ACCESS (BY USER ROWID) OF 'EMP'
62 NESTED LOOPS
76 BUFFER (SORT)
87 CONNECT BY PUMP
96 TABLE ACCESS (FULL) OF 'EMP'
第一种方法在TABLE ACCESS比第二种方法花的开销小些, 但在
NESTED LOOPS

BUFFER (SORT)

CONNECT BY PUMP

TABLE ACCESS (FULL) OF 'EMP'第一种花得开销还要多些.
为什么开销比第二种会多些?偶不解. 请答疑解惑!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
没人来跟啊,自己来顶一下.....
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
自已顶....
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
帮你顶一下...
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
对connect by 不是很理解,等待高手回答
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
就是,等待高手回答。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
呵呵
做BOM/ROUITNG 层次查询的时候会用到
递归法
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行