Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Оптимизация подзапроса  [new]
Foror
Member

Откуда:
Сообщений: 172
Есть большой запрос, в котором следующее условие тормозит весь запрос:

AND PROJECT.PRJ_ID IN
                     (SELECT PRJ_ID FROM PROJECT CONNECT BY PRIOR PRJ_ID = PRJ_PARENT_ID
                     START WITH PRJ_ID = aProjectID)

Построение дерева CONNECT BY PRIOR рабоет быстро, если запустить его отдельно.
Если подзапрос заменить на следующий, то при том же количестве PRJ_ID в выборке, всё работает значительно быстрее.

AND PROJECT.PRJ_ID IN (SELECT PRJ_ID FROM PROJECT)

Также пробывал подставлять в FROM первый подзапрос за место таблицы PROJECT и соответсвенно всё первоё условие удалял из запроса. В итоге теже самые тормоза.

Какие идеи, как это оптимизировать?
21 мар 07, 11:11    [3922993]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация подзапроса  [new]
Бабичев Сергей
Member

Откуда:
Сообщений: 2498
Варианты:
1) Выделить дерево из IN-подзапроса во встроенное представление
2) Почитать вот тут: тынц№1, тынц№2
21 мар 07, 11:17    [3923035]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация подзапроса  [new]
Brodiaga
Member

Откуда:
Сообщений: 501
План в студию
21 мар 07, 11:19    [3923043]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить