Oracle分区表的层次查询如何才能用到分区?(三)

2015-11-21 03:26:35 · 作者: · 浏览: 57
----- 1 - access("T"."PARENT_ID"=PRIOR "T"."ID" AND PRIOR "T"."CODE"='0306') filter("T"."ID"=12) 统计信息 ---------------------------------------------------------- 1 recursive calls 0 db block gets 55 consistent gets 0 physical reads 0 redo size 557 bytes sent via SQL*Net to client 360 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 2 sorts (memory) 0 sorts (disk) 2 rows processed 只有这一种写法才能用到分区 SQL> select * from test t start with (t.id = 12 and t.code = '0306') connect by prior t.id = t.parent_id and t.code = '0306'; 执行计划 ---------------------------------------------------------- Plan hash value: 3571852076 -------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | -------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 2 | 84 | 9 (34)| 00:00:01 | | | |* 1 | CONNECT BY WITH FILTERING | | | | | | | | |* 2 | TABLE ACCESS BY GLOBAL INDEX ROWID| TEST | 1 | 15 | 1 (0)| 00:00:01 | 6 | 6 | |* 3 | INDEX UNIQUE SCAN | SYS_C0010758 | 1 | | 0 (0)| 00:00:01 | | | |* 4 | HASH JOIN | | 1 | 28 | 6 (17)| 00:00:01 | | | | 5 | CONNECT BY PUMP | | | | | | | | | 6 | PARTITION LIST SINGLE | | 2 | 30 | 4 (0)| 00:00:01 | KEY | KEY | | 7 | TABLE ACCESS FULL | TEST | 2 | 30 | 4 (0)| 00:00:01 | 6 | 6 | -------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - access("T"."PARENT_ID"=PRIOR "T"."ID") filter("T"."CODE"='0306') 2 - filter("T"."CODE"='0306') 3 - access("T"."ID"=12) 4 - access("connect$_by$_pump$_002"."prior t.id "="T"."PARENT_ID") 统计信息 ---------------------------------------------------------- 0 recursive calls 0 db block gets 16 consistent gets 0 physical reads 0 redo size 557 bytes sent via SQL*Net to client 360 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 4 sorts (memory) 0 sorts (disk) 2 rows processed

?