Database Reference
In-Depth Information
SQL> exec dbms_stats.gather_table_stats(user,'T1',no_invalidate=>dbms_stats.auto_invalidate)
PL/SQL procedure successfully completed.
SQL> set time on
14:34:44 SQL>
14:34:44 SQL> select count(*) from t1 where a=1;
COUNT(*)
----------
1
14:34:44 SQL> select plan_table_output from table (sys.dbms_xplan.display_cursor);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
------------------
SQL_ID 5p7s1hq62rf59, child number 0
-------------------------------------
select count(*) from t1 where a=1
Plan hash value: 3547404373
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 1 (100)| |
| 1 | SORT AGGREGATE | | 1 | 4 | | |
|* 2 | INDEX RANGE SCAN| I_T1 | 1 | 4 | 1 (0)| 00:00:01 |
--------------------------------------------------------------------------
L.: „ Daraufhin werden die Optimizer-Statistiken erneut generiert. Die SQL-Anweisung wird
zum zweiten Mal nicht sofort ausgeführt, sondern erst in 30 s.
14:34:44 SQL> exec
dbms_stats.gather_table_stats(user,'T1',no_invalidate=>dbms_stats.auto_invalidate)
PL/SQL procedure successfully completed.
14:34:45 SQL> exec dbms_lock.sleep(30);
PL/SQL procedure successfully completed.
L.: „ Peter, kannst Du sagen, ob ein neuer Cursor bei der Ausführung der SQL-Anweisung
nach dieser Pause angelegt wird?
P.: „ Ich denke, es wird so sein, weil wir länger als der Parameterwert von _ optimizer _ in -
validation _ period gewartet haben.
L.: „ Schauen wir, ob Du Recht hast.
Search WWH ::




Custom Search