Не могли бы вы помочь мне оптимизировать следующий запрос «Весь союз»? Любая идея, с чего начать? Подробнее: SQL Plan показываетОптимизировать союз Все SQL
| 7 | ТАБЛИЦА ДОСТУПА ПОЛНОСТЬЮ | DELAY_DATE | 17533 | 171K | 25 (0) | 00:00:01 |
| 8 | ТАБЛИЦА ДОСТУПА ПОЛНОСТЬЮ | ВАКАНСИИ | 25879 | 454K | 298 (1) | 00:00:04 |
| 16 | MERGE ПРИСОЕДИНЯЙТЕСЬ КАРТЕТИЮ | | 17533 | 273K | 28 (4) | 00:00:01 |
Являются ли эти потенциальные проблемы?
SELECT delay_reason_desc, delay_start_date, delay_end_date, delay_reason_code
FROM delay_date dd
LEFT JOIN delay_reason dr
ON dr.delay_reason_id=dd.delay_reason_id
LEFT JOIN delay_interval di
ON di.delay_interval_id=dr.delay_interval_id
LEFT JOIN vacancy v
ON v.vacancy_id=dd.vacancy_id
WHERE dr.delay_reason_active_ind='Y'
--AND dd.vacancy_id=p_vacancy_id
AND delay_start_date >= vacancy_fpps_received_date
AND delay_end_date <= vacancy_open_date
AND delay_interval_code=1
UNION ALL
SELECT delay_reason_desc, delay_start_date, delay_end_date, delay_reason_code
FROM delay_date dd
LEFT JOIN delay_reason dr
ON dr.delay_reason_id=dd.delay_reason_id
LEFT JOIN delay_interval di
ON di.delay_interval_id=dr.delay_interval_id
LEFT JOIN vacancy v
ON v.vacancy_id=dd.vacancy_id
WHERE dr.delay_reason_active_ind='Y'
--AND dd.vacancy_id=p_vacancy_id
AND delay_start_date >= vacancy_open_date
AND delay_end_date <= vacancy_closed_date
AND delay_interval_code=2
Какие индексы у вас есть на этих таблицах? –
Вы должны попробовать привыкнуть к префиксу всех столбцов с псевдонимами имен таблиц. В этом случае достаточно понятно, в каких таблицах присутствуют столбцы, но они более надежны и помогают чтению включать их. –