powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Распределенные запросы. Мистические действия оптимизатора
6 сообщений из 6, страница 1 из 1
Распределенные запросы. Мистические действия оптимизатора
    #32046897
Beginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветсвую !
Недавно обсуждался сабж про распределенные запросы.
Задача решилась, но, как оптимайзер понял чего надо делать я так и не догнал
Запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT   /*+ DRIVING_SITE(a) */        
         a.internal_key
        , a.run_date
        , a.cb_acct_no
        , a.cb_gl_code
        , a.branch
        , a.ccy
        , a.client_no
        , a.gl_code
        , a.acct_exec
        , a.department
        ,a.w_ccy_out_bal
        ,a.w_lcy_out_bal 
        

 FROM 
   UVK.ACC_SET_ITEM b, GL_ACCT_HIST@XBASE.WORLD a
   WHERE a.RUN_DATE='20/08/2002' AND b.BALACC=a.CB_GL_CODE

Не работает, так как выдается эксепшн ORA-02064 (distributed operation not supported). Прокрыжив кучу оракуловских доков типа [Administrators Guide].[Tuning distributed Queries] а также [Performance guide and reference] не нашел никакого описания того, чего надо настраивать и как [У меня 9i EE удаленный сервак оказался 8.x ]. Добрые люди подсказали установить distributed transactions>0 [у меня стояло 46 до админа удаленного сервака дозвониться невозможно]

После кучи комбинаций вышеуказанного сиквела, я нашел некое заветное сочетание, которое выполнилось мгновенно.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT  
         a.internal_key
        , a.run_date 
        , a.cb_acct_no
        , a.cb_gl_code
        , a.branch
        , a.ccy
        , a.client_no
        , a.gl_code
        , a.acct_exec
        , a.department
        ,a.department
        ,a.w_ccy_out_bal
        ,a.w_lcy_out_bal

 FROM 
   GL_ACCT_HIST@XBASE.WORLD a,UVK.ACC_SET_ITEM b
   WHERE a.CB_GL_CODE LIKE b.BALACC AND a.run_date='20/08/2002'


Вопрос:
1. Так как нужно настраивать оракул, чтобы distributed operation поддерживались и я мог использовать хинты типа DRIVING_SITE
2. Если последний cиквел выполняется как надо, значит distributed operations все таки поддерживаются?
3. В последнем примере план выглядит след образом:
Код: plaintext
1.
2.
3.
4.
  4   SELECT STATEMENT 
  3   NESTED LOOPS 
  1   TABLE ACCESS (FULL), ACC_SET_ITEM (UVK)  
  2   REMOTE 

Чего и нужно было. Так в чем же секрет, мать его ...... Где/куда рыть?

Спасибо большое ....
...
Рейтинг: 0 / 0
Распределенные запросы. Мистические действия оптимизатора
    #32046922
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас судя по предыдущим постингам (там где вы приводите старый план выполнения) исползуется RBO. Вы поменяли запрос (like подразумевает невозможность использования индекса) вот и план выполнения поменялся.

Если вы считаете, что удаленная таблица будет всегда больше локальной, то сохраните этот план в query outlines.

Если же надо менять план динамически, то поэксперементируйте с CBO (мне кажется, что удаленная статистика также принимается во внимание, но не уверен).
...
Рейтинг: 0 / 0
Распределенные запросы. Мистические действия оптимизатора
    #32046924
ora600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вероятно, повлиял порядок соединения таблиц.
Попробуйте выполнить тот же запрос , но во FROM
поменяйте таблицы местами:
Код: plaintext
1.
2.
FROM 
   UVK.ACC_SET_ITEM b, GL_ACCT_HIST@XBASE.WORLD a
   

Если станет медленно, то это ОНО :-)
Далее
Код: plaintext
1.
2.
3.
4.
5.
SELECT  /*+ ordered*/ 
  ...
FROM 
   UVK.ACC_SET_ITEM b, GL_ACCT_HIST@XBASE.WORLD a
 ...
   

Опять быстро ?
Тогда читайте в доке про ordered и другие хинты, и помните про фичу - в отсутствие многих причин влияющих на порядок соединения (хинты, режим оптимизатора и т.д.) оно будет производится в обратном порядке, т.е.
FROM a, b
к b будет присоединяться a
...
Рейтинг: 0 / 0
Распределенные запросы. Мистические действия оптимизатора
    #32046927
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Порядок соединения может влиять только на RBO и то при некоторых условиях
...
Рейтинг: 0 / 0
Распределенные запросы. Мистические действия оптимизатора
    #32046935
ora600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2killed
>Порядок соединения может влиять только на RBO и то при некоторых условиях

Дык ! ...
В данном случае - удаленные таблички на 50 килотысяч записей - как-то боязно отдавать план в шаловливые ручки CBO :-)
...
Рейтинг: 0 / 0
Распределенные запросы. Мистические действия оптимизатора
    #32046942
Beginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проэкспериментировав еще можно сделать вывод:
Нужный план достигается в результате перестановки таблиц "a" и "b" и замены "=", "Like"
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Распределенные запросы. Мистические действия оптимизатора
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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