Гость
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разное время выполнения dml оператора в sql окне и в анонимном pl/sql блоке (begin ... end) / 2 сообщений из 2, страница 1 из 1
31.10.2023, 10:32
    #40138193
bhr
bhr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разное время выполнения dml оператора в sql окне и в анонимном pl/sql блоке (begin ... end)
народ. сломал голову, не понимаю, в чем причина....
Есть две идентичные таблицы. Данные тоже идентичны. 42 млн записей. делаю мердж из одной в другую.
Код: PL/pgSQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
ALTER SESSION enable PARALLEL DML;
merge /*+ parallel(16)*/ into MV_PLAYER_MAIN_BBA2 t
using (
    select /*+ parallel(16)*/ * from MV_PLAYER_MAIN_BBA3
            ) q
 ---
   on (q.id  = t.id)
  when matched then update
   set  t.WWW_ID  = q.WWW_ID ,
        t.WWW_FIRSTNAME  = q.WWW_FIRSTNAME ,
        t.WWW_LASTNAME  = q.WWW_LASTNAME ,
        t.WWW_GENDER  = q.WWW_GENDER ,
        t.WWW_BIRTHDAY  = q.WWW_BIRTHDAY ,
        --- и тд. и тп
  where
        coalesce(t.WWW_ID, -1) != coalesce(q.WWW_ID, -1)
        or coalesce(t.WWW_FIRSTNAME,'qqq') != coalesce(q.WWW_FIRSTNAME,'qqq')
        or coalesce(t.WWW_LASTNAME,'qqq') != coalesce(q.WWW_LASTNAME,'qqq')
        or coalesce(t.WWW_GENDER,'qqq') != coalesce(q.WWW_GENDER,'qqq')
      --- и тд. и тп.
;
commit;
выполняется 170 секунд
как только засунул весь код в блок begin ... end
выполняется 33 секунды....
Голову сломал, какие настройки смотреть, ума не приложу.
есичо, enable PARALLEL query тоже ставил - не помогает (да и не нужен он, ибо вижу, что параллельные запросы параллелятся успешно)
...
Рейтинг: 0 / 0
01.11.2023, 15:22
    #40138195
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разное время выполнения dml оператора в sql окне и в анонимном pl/sql блоке (begin ... end)
bhr [игнорируется] 

Начните с простого: посмотрите планы исполнения в обоих вариантах.
Если недостаточно - можно посмотреть на dbms_sqltune.report_sql_monitor, если лицензия позволяет (если компания под санкциями - можно смотреть независимо от :)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разное время выполнения dml оператора в sql окне и в анонимном pl/sql блоке (begin ... end) / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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