Database Reference
In-Depth Information
• 'ALL'oder
• 'ADVANCED'
Bei dem Wert 'ALL' werden die Informationen zur Projection und zu Remote-Abfragen
ausgegeben.
Der Wert 'ADVANCED ' bewirkt die Ausgabe einigen zusätzlichen Informationen (z. B.
Outlines, s. im Abschn. 13.1
select * from table(sys.dbms_xplan.display('SYS.PLAN_TABLE','MY_ID','ADVANCED'));
Bei der Erstellung eines Explain Plan darf man nicht vergessen, dass der jeweilige Ausfüh-
rungsplan sich von dem Explain Plan unterscheiden kann (z. B. wegen Cardinality Feed-
back (s. in Abschn. 15.2) oder wegen User Bind Peeking, falls die jeweilige SQL-Anweisung
Bind-Variablen beinhaltet (s. in Abschn. 10 und 15.1). Bei den Bind-Variablen muss man
noch aus dem folgenden Grund aufpassen: Das Kommando Explain Plan geht davon aus,
dass alle Bind-Variablen in der SQL-Anweisung vom Type VARCHAR2 sind. Dies kann
auch zu einem Unterschied der beiden Pläne führen.
Peter: „ Ich glaube, dass ich irgendwo darüber gelesen habe. Mir fällt aber kein Beispiel
ein.
Leonid: „Nehmen wir ein Beispiel aus dem Abschn. 2.3.2 . Wenn eine Tabelle eine Spalte
vom Typ VARCHAR2 hat, die mit nummerischen Werten gefüllt ist, wissen wir bereits, dass
eine Abfrage über einen nummerischen Typ nur mit Full Table Scan möglich ist. Falls diese
Abfrage eine Bind-Variable beinhaltet, nimmt das Kommando Explain Plan aber an, dass
diese Variable vom Typ VARCHAR2 ist, und zeigt aus diesem Grund einen Index Scan an.
SQL> explain plan set statement_id='&sss' into sys.plan_table for
2 select /*+ index(t1 i_t1) */ * from t1 where c1 = :b1;
EXPLAIN PLAN ausgeführt.
SQL>
SQL> select * from table(sys.dbms_xplan.display('SYS.PLAN_TABLE','&sss',''));
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
------------------
Plan hash value: 4196714161
------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 78 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T1 | 1 | 78 | 1 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | I_T1 | 1 | | 1 (0)| 00:00:01 |
-----------------------------------------------------------------------------------
Es ist nicht sehr bekannt, dass das Kommando Explain Plan auch für DDL-Kommandos
(data definition language) benutzt werden kann. Damit ist nicht nur CTAS (create table as
select), sondern auch Kommandos wie „CREATE INDEX“ oder „ALTER INDEX REBU-
ILD“ gemeint.
P.: „ Wie kann es bei Performance Tuning helfen?
Search WWH ::




Custom Search