| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Mailing Lists -> Oracle-L -> xplan bug with Jonathan Lewis Computing Index?
I was running the Jonathan Lewis Oracle Computing Index (
http://www.miraclebenelux.nl/jloci.html ) which is just SQL high in CPU. It
does connect-by using an IOT. When I looked at the execution plan using
dbms_xplan.display_cursor (v. 10.2.0.3) something didn't look right. The IOT
has 20,000 rows, I gathered stats on it, but the rows accessed, both in
INDEX FULL SCAN and INDEX RANGE SCAN (access("N">PRIOR NULL) which should be
everything) both showed 1000 rows.
Tracing with 10046 has INDEX FULL SCAN with 1 row, and INDEX RANGE SCAN with 19998 rows.
Since dbms_xplan should use real data, why the difference?
Different interpretation of Rows? a bug? anybody else see this?
Henry
DBMS_XPLAN.DISPLAY CURSOR
HENRY @test > select *
2 from table(dbms_xplan.display_cursor);
PLAN_TABLE_OUTPUT
Plan hash value: 3781677993
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |(0)| 00:00:01 |
----------------------------------------------------------------------------
---------------
| 0 | SELECT STATEMENT | | | | 2 (100)| | | 1 | SORT AGGREGATE | | 1 | | | | |* 2 | COUNT STOPKEY | | | | | | | 3 | VIEW | | 1000 | | 2 (0)| 00:00:01 | | 4 | CONNECT BY | | | | | | |* 5 | INDEX UNIQUE SCAN| SYS_IOT_TOP_42136 | 1 | 4 | 1 (0)| 00:00:01 | | 6 | INDEX FULL SCAN | SYS_IOT_TOP_42136 | 1000 | 4000 | 2 (0)| 00:00:01 | |* 7 | INDEX RANGE SCAN | SYS_IOT_TOP_42136 | 1000 | 4000 | 2
Predicate Information (identified by operation id):
2 - filter(ROWNUM<20000)
5 - access("N"=1)
7 - access("N">PRIOR NULL)
----------------------------------------------------------------------------
--
----------------------------------------------------------------------------
--
10046 TRACE
select count(*)
from (
select n
from cpu_test_dummy
connect by n > prior n
start with n = 1 )
where rownum < 20000
call count cpu elapsed disk query current
rows
------- ------ -------- ---------- ---------- ---------- ----------
----------
Parse 1 0.00 0.00 0 0 0
0
Execute 1 0.00 0.00 0 0 0
0
Fetch 2 30.81 30.08 0 20027 0
1
------- ------ -------- ---------- ---------- ---------- ----------
----------
total 4 30.81 30.08 0 20027 0
1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 38
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT AGGREGATE (cr=20027 pr=0 pw=0 time=30086182 us)
19999 COUNT STOPKEY (cr=20027 pr=0 pw=0 time=30497072 us)
19999 VIEW (cr=20027 pr=0 pw=0 time=30377070 us)
19999 CONNECT BY (cr=20027 pr=0 pw=0 time=30277071 us)
1 INDEX UNIQUE SCAN SYS_IOT_TOP_42136 (cr=2 pr=0 pw=0 time=44
us)(object id 42137)
1 INDEX FULL SCAN SYS_IOT_TOP_42136 (cr=2 pr=0 pw=0 time=32
us)(object id 42137)
19998 INDEX RANGE SCAN SYS_IOT_TOP_42136 (cr=20023 pr=0 pw=0
time=446070 us)(object id 42137)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total
Waited
---------------------------------------- Waited ----------
------------
SQL*Net message to client 2 0.00
0.00
SQL*Net message from client 2 37.31
37.31
****************************************************************************
****
--
http://www.freelists.org/webpage/oracle-l
Received on Fri Jun 29 2007 - 15:43:40 CDT
![]() |
![]() |