Database Reference
In-Depth Information
SQL> set autotrace trace exp
SQL>
SQL> select * from t1 where a=:b1;
Ausführungsplan
----------------------------------------------------------
Plan hash value: 3617692013
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 7503 | 139K| 29 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| T1 | 7503 | 139K| 29 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("A"=TO_NUMBER(:B1))
SQL>
SQL> select sql_text, executions, parse_calls, child_number from v$sql where
sql_id='2wbyny3krfp88';
SQL_TEXT
--------------------------------------------------------------------------------
EXECUTIONS PARSE_CALLS CHILD_NUMBER
---------- ----------- ------------
select * from t1 where a=:b1
0 1 0
So ist ein Cursor entstanden, der einmal geparst aber niemals ausgeführt wurde. Wenn wir
jetzt unseren Select ausführen, wird dieser Cursor verwendet.
SQL> select * from t1 where a=:b1;
A B C D E
---------- ---------- ---------- ---------- ----------
0 0 1 1 1
0 0 2 2 2
0 0 3 3 3
0 0 4 4 4
0 0 5 5 5
0 0 6 6 6
0 0 7 7 7
0 0 8 8 8
0 0 9 9 9
0 0 10 10 10
10 Zeilen ausgewählt.
SQL>
SQL> select plan_table_output from table (sys.dbms_xplan.display_cursor('','','ADVANCED
LAST'));
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID 2wbyny3krfp88, child number 0
-------------------------------------
select * from t1 where a=:b1
Plan hash value: 3617692013
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
Search WWH ::




Custom Search