Преимущества применения оператора WITH в Oracle:
- Устранение дублирования кода. 5 Единожды определённый подзапрос может использоваться неоднократно в разных частях запроса. 5
- Оптимизация производительности. 2 Oracle может автоматически сохранить результаты подзапроса в глобальной временной таблице и выполнить запрос только один раз. 5
- Разбиение сложной конструкции на простые и понятные блоки. 5 Подзапросы в WITH могут использовать другие подзапросы, что позволяет разбить сложную конструкцию на отдельные части. 5
- Возможность описывать в блоке WITH функции и процедуры на PL/SQL. 5 В некоторых случаях это позволяет ускорить выполнение запроса по сравнению с обычными функциями. 5
Оператор WITH позволяет дать блоку подзапроса имя/псевдоним, на которое можно ссылаться в нескольких местах основного SQL-запроса. 3