powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация запроса
6 сообщений из 6, страница 1 из 1
Оптимизация запроса
    #39435607
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня, нужна помощь, подскажите пожалуйста.
запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with q1 as(
 select Nomer from dual
 union 
 select Nomer from dual
), GO as(
 select nomer, fil from t1
 join t2 on t1.a = t2.a
),  FIL1 as
 select nomer, fil from t1
 join t3@dblink on t1.a = t3.a
)
select qwe
from GO 
join table on GO.nomer = table.nomer

union  /*как только я добавляю union к удаленной таблице запрос начинает ужасно долго выполняться*/
select qwe
from FIL1 
join table2@dblink on FIL.nomer = table2.nomer



-----------------------------------------------

почитал как народ справляется с данной проблемой, использует hint /*+ DRIVING_SITE(table_name)*/
попробовал использовать хинт, но не помогло, подскажите , что не так сделал... ?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
with q1 as(
 select Nomer from dual
 union 
 select Nomer from dual
), GO as(
 select nomer, fil from t1
 join t2 on t1.a = t2.a
),  FIL1 as
 select nomer, fil from t1
 join t3@dblink on t1.a = t3.a
)
select qwe
from GO 
join table on GO.nomer = table.nomer

union  
select /*+ DRIVING_SITE(t2)*/ 
        qwe
from FIL1 f
join table2@dblink t2 on FIL.nomer = table2.nomer
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39435655
Фотография JaRo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все "ужасно долго" сопровождаются как минимум планом запроса.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39435729
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxwaitпопробовал использовать хинт

Слышал звон, да не знаю где он.

В текущем исполнении вы напрямую сказали СУБД что соединение во втором запросе надо выполнять целиком на удалённой стороне. Потом результат вытаскивать в union.

А вообще, как уже сказали - показывайте план запроса.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39435769
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxwait
Код: plsql
1.
2.
3.
4.
select /*+ DRIVING_SITE(t2)*/ 
        qwe
from FIL1 f
join table2@dblink t2 on FIL.nomer = table2.nomer

для начала - запрос сам по себе работает быстро?
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39435918
maxwait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

я подумал, что лучше же выполнение производить на удаленной стороне, а потом в юнион вернуть только результат, а не тащить все на локальную сторону по отдельности?
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39435960
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxwait,

Посмотри план, сильно не уверен, что driving_site действует на кусок запроса.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]