Подтвердить что ты не робот

Как просмотреть план объяснения в Oracle Sql-разработчике?

У меня мало запросов SQL, у которых очень низкая производительность выполнения запросов, и я хочу проверить план выполнения запроса для этого запроса. Я пытаюсь выполнить указанный ниже запрос, но он не показывает план выполнения запроса. Его единственный план отображения сообщений FOR преуспел. Я не знаю, есть ли какие-либо настройки, которые мы должны сделать в oracle sql-разработчике, чтобы обсудить проект плана:

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 );
4b9b3361

Ответ 1

РАЗРАБОТКА ПЛАНОВ ДЛЯ

В SQL Developer вам не нужно использовать оператор EXPLAIN PLAN FOR. Нажмите F10 или щелкните значок Объяснить план.

enter image description here

Затем он будет отображаться в окне Развернуть пояснения.

Если вы используете SQL * Plus, используйте DBMS_XPLAN.

Например,

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>

См. Как создать и отобразить пояснительный план

Ответ 2

Объяснение показывает, как оптимизатор считает, что запрос будет выполнен.

Чтобы показать реальный план, вам нужно будет запустить sql один раз. затем используйте один и тот же сеанс, выполнив следующие

@yoursql

выберите * из таблицы (dbms_xplan.disply_cursor())

Этот способ может отображать реальный план, используемый во время выполнения. Существует несколько других способов показать план, используя dbms_xplan. Вы можете использовать google с термином "dbms_xplan".