Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация запроса / 6 сообщений из 6, страница 1 из 1
10.04.2017, 08:42
    #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
10.04.2017, 09:53
    #39435655
JaRo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
Все "ужасно долго" сопровождаются как минимум планом запроса.
...
Рейтинг: 0 / 0
10.04.2017, 11:44
    #39435729
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
maxwaitпопробовал использовать хинт

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

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

А вообще, как уже сказали - показывайте план запроса.
...
Рейтинг: 0 / 0
10.04.2017, 12:49
    #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
10.04.2017, 15:22
    #39435918
maxwait
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
env,

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

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


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