Comment afficher le plan Explain dans Oracle Sql developer?
J'ai peu de requêtes SQL qui ont des performances d'exécution de requête très faibles et je veux vérifier le plan d'exécution de la requête pour cette requête. J'essaie d'exécuter la requête ci-dessous mais elle ne montre aucun plan d'exécution de requête. Son seul plan de message d'affichage Pour réussi. Je ne sais pas y a-t-il des paramètres que nous devons faire dans Oracle sql developer pour expliquer le plan de la requête:
EXPLAIN PLAN FOR
Select SO.P_OPTION_ID FROM
SIMSIM
JOIN P_TYPE PT on PT.KEY=SIM.P_TYPE_KEY JOIN P_CONFIG PC ON PC.ID=PT.PRODUCT_CONFIG_ID
JOIN P_OPTION PO ON PO.OPTION_KEY=PC.DEFAULT_PRODUCT_OPTIONS JOIN S_OPTION SO ON SO.SERVICE_ID=SIM.ASSIGNED_TO_SERVICE_ID
JOIN AVV_NO AN ON SIM.ASSIGNED_ANUMBER_ID = AN.ID
where SO.STATUS_ID IN (20,40)
and SO.ID < to_char(SYSDATE - numtodsinterval ( 1,'MINUTE' ), 'YYYYMMDDHH24MISS')||'0000'
and SO.ID > to_char(SYSDATE - numtodsinterval ( 1, 'HOUR' ), 'YYYYMMDDHH24MISS')||'0000'
and NOT EXISTS(SELECT ID from TEMP_BPL T WHERE T.ID = SO.ID );
2 réponses
EXPLIQUER LE PLAN POUR
Dans SQL Developer , Vous n'avez pas besoin d'utiliser l'instruction EXPLAIN PLAN FOR
. Appuyez sur F10
ou cliquez sur le Expliquer icône du Plan.
Il sera ensuite affiché dans la fenêtreexpliquer le Plan .
Si vous utilisez SQL*Plus, puis utilisez DBMS_XPLAN.
Par exemple
SQL> EXPLAIN PLAN FOR
2 SELECT * FROM DUAL;
Explained.
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------
Plan hash value: 272002086
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| DUAL | 1 | 2 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
8 rows selected.
SQL>
Explain montre seulement comment l'optimiseur pense que la requête va s'exécuter.
Pour afficher le plan réel, vous devrez exécuter le sql une fois. Ensuite, utilisez la même session exécutez ce qui suit:
@yoursql
select * from table(dbms_xplan.display_cursor())
Cette façon peut montrer le plan réel utilisé lors de l'exécution. Il existe plusieurs autres façons d'afficher le plan en utilisant dbms_xplan. Vous pouvez Google avec le terme "dbms_xplan".