|
|
|
Как оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Есть запрос такого вида: Код: plsql 1. 2. 3. 4. 5. 6. Запрос Код: plsql 1. отрабатывает быстро, менее секунды В табличке dict_table всего 3 записи Основной запрос выполняется больше 10 минут По определенным причинам полностью переписывать запрос я не могу, можно добавлять хинты Как можно заставить оптимизатор выполнить подзапрос "как есть", сделать из него временную таблицу и дальше юзать эту временную таблицу для каждой строки справочника? Пробовал так: Код: plsql 1. 2. 3. 4. 5. 6. Не катит, то ли утки высоко летали, то ли мы собак низко подбрасывали ничего не меняется Юзер план не может посмотреть, потому как нет грантов на таблички внутри вьюхи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 11:48 |
|
||
|
Как оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Быдло____кодер, а почему сразу не написать? Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 12:04 |
|
||
|
Как оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Быдло____кодер, ну, так-то тебе больше в сторону UNNEST / NO_UNNEST смотреть нужно, а не в сторону /*+ materialize */ , который, кстати, применим только к WITH-subquery ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 12:53 |
|
||
|
Как оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Посмотрел под другим юзером план, он в обоих случах (с хинтом и без) не делает объединение подзапроса с основным запросом, но зараза план выполнения подзапроса без ничего и в связке с основным запросом отличается (с основным запросом он все таблички по очереди выстраивает и делает hash join / nested loop, не удивительно что такая операция занимает дофига времени) Можно как то заставить оптимизатор строить план для подзапроса не оглядываясь на основной запрос? K790 а почему сразу не написать? Запрос динамически генерируется клиентом, и в реальности намного сложнее, переделывать механизм его формирования напряжно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 14:12 |
|
||
|
Как оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Быдло____кодерМожно как то заставить оптимизатор строить план для подзапроса не оглядываясь на основной запрос? В твоем случае можно просто хинты в подзапрос ставить, раз он и так не аннестится. Либо qb_name и в теле основного запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2016, 15:43 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=198&tid=1887352]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 322ms |

| 0 / 0 |
