June 14

5 способов посмотреть план выполнения запроса в Oracle SQL

Зачем анализировать план выполнения

План выполнения показывает, как Oracle обрабатывает SQL-запрос: какие индексы использует, в каком порядке соединяет таблицы, как фильтрует данные. Понимание плана — ключ к оптимизации запросов и устранению узких мест.

5 способов

1. EXPLAIN PLAN

Предсказывает план выполнения запроса. Не исполняет сам запрос.

Как использовать:

EXPLAIN PLAN FOR 
SELECT * FROM demo_products WHERE NAME LIKE 'Товар%'; 

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

Когда применять: Для предварительного анализа до запуска запроса.

Отличие: Это план по предположению Optimizer, без выполнения.

EXPLAIN PLAN

2. UTOTRACE

Автоматически выполняет запрос и сразу показывает план и статистику.

Как использовать:

SET AUTOTRACE ON 
SELECT * FROM demo_products WHERE NAME LIKE 'Товар%'; 

Инструменты: SQL*Plus, SQLcl, SQL Developer.

Преимущество: Быстро даёт общую картину — план и фактические затраты.

3. DBMS_XPLAN.DISPLAY

Что делает: Форматирует содержимое PLAN_TABLE.

Как использовать:

EXPLAIN PLAN FOR 
SELECT * FROM demo_orders WHERE REGION = 'Европа'; 
 
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

Плюс: Используется совместно с EXPLAIN PLAN, но даёт удобный читаемый вывод.

DBMS_XPLAN

4. Real-Time SQL Monitoring

Показывает фактический ход выполнения "тяжёлых" запросов.

Условия: По умолчанию активируется при >5 сек выполнения или PARALLEL запросах.

Как использовать:

-- Получить активные запросы 
SELECT * FROM V$SQL_MONITOR; 

-- Посмотреть подробности 
SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(sql_id => '...', type => 'TEXT') 
FROM DUAL;

Плюс: Подходит для анализа долгих или зависающих запросов.

5. SQL Trace + TKPROF

Трассирует каждый шаг выполнения SQL, фиксирует затраты, вызовы, ожидания.

Как использовать:

ALTER SESSION SET SQL_TRACE = TRUE; 

-- выполнить нужный запрос 
ALTER SESSION SET SQL_TRACE = FALSE;

-- затем обработать трейс-файл через TKPROF

Когда использовать: Для глубокой отладки, особенно при сложных сценариях.

Сравнения способов просмотра плана выполнения запроса в Oracle SQL

Сравнения способов просмотра плана выполнения запроса в Oracle SQL

Полезные ссылки

  1. Oracle® Database SQL Tuning Guide (перейти)
  2. DBMS_XPLAN Package перейти (перейти)
  3. Технические столбцы в БД

Файлы и скрипты

Исходные файлы можно найти в GIT.

Контакты

Написать автору | Telegram | Сайт автора