Voir le plan d’éxécution d’une requête.
Un ptit rappel ne fait pas de mal
En premier, il fait créer une table ou les plans seront stockés ( PLAN_TABLE ) .
C’est pas compliqué :
system@DB.WORLD> @?/rdbms/admin/utlxplan.sql
Table créée.
Après rien de complexe non plus :
explain plan for <<le code SQL>>
Soit par exemple :
system@DB.WORLD> explain plan for select * from v$session;
Explicité.
La encore rien de transcendant …
Et pour finir :
system@DB.WORLD> @?/rdbms/admin/utlxpls.sql
PLAN_TABLE_OUTPUT
—————————————————————————————————-
Plan hash value: 319272779——————————————————————————————–
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
——————————————————————————————–
| 0 | SELECT STATEMENT | | 1 | 1134 | 0 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | 1 | 1134 | 0 (0)| 00:00:01 |
|* 2 | FIXED TABLE FULL | X$KSUSE | 1 | 925 | 0 (0)| 00:00:01 |
|* 3 | FIXED TABLE FIXED INDEX| X$KSLED (ind:2) | 1 | 209 | 0 (0)| 00:00:01 |
——————————————————————————————–Predicate Information (identified by operation id):
—————————————————2 - filter(”S”.”INST_ID”=USERENV(’INSTANCE’) AND BITAND(”S”.”KSSPAFLG”,1)<>0 AND
BITAND(”S”.”KSUSEFLG”,1)<>0)
3 - filter(”S”.”KSUSEOPC”=”E”.”INDX”)17 ligne(s) sélectionnée(s).
Voili voilou !
a+
