powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите как оптимизировать update
17 сообщений из 17, страница 1 из 1
Подскажите как оптимизировать update
    #39353043
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
update meta_data_vault.law_party_stage3322 stage
set subj_id = (
select max(hub.subj_id)
from templ.hub_subject hub
where stage.inn = hub.inn
or stage.snils_individual = hub.snils
or hub.other_ident_code = coalesce(stage.other_ident_code, stage.other_ident_code_js)
)
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353051
Оракул1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x17.mstu,

Предлагаю добавить форматирование.
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353059
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstustageНе использовать стадии. Чудило, http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353444
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
update meta_data_vault.law_party_stage3322 stage
set subj_id = (
select max(hub.subj_id)
from templ.hub_subject hub
where stage.inn = hub.inn
or stage.snils_individual = hub.snils
or hub.other_ident_code = coalesce(stage.other_ident_code, stage.other_ident_code_js)
) 
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353446
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполняется около 120 минут
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353454
kalisto-87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x17.mstu,

А сколько записей в таблице ?
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353457
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,
а БД какая ?
19927123
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353694
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalisto-87, 250 тыс
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353731
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
123йй, Все индексы которые есть
CREATE INDEX i_hub_subject_right ON templ.hub_subject (subj_id,load_time);

CREATE INDEX i_hub_subject_right_inn ON templ.hub_subject (inn);

CREATE INDEX i_hub_subject_right_snils ON templ.hub_subject (snils);

CREATE INDEX i_hub_subject_session_id ON templ.hub_subject (session_id);
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353905
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
or hub.other_ident_code = ...

x17.mstu
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
123йй, Все индексы которые есть
CREATE INDEX i_hub_subject_right ON templ.hub_subject (subj_id,load_time);

CREATE INDEX i_hub_subject_right_inn ON templ.hub_subject (inn);

CREATE INDEX i_hub_subject_right_snils ON templ.hub_subject (snils);

CREATE INDEX i_hub_subject_session_id ON templ.hub_subject (session_id);
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353911
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

Не понял, убрать coalesce ?
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353933
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

Для начала имеет смысл привести план запроса.

Потом посмотреть ожидания в сессии этого запроса и понять на что тратится время.

С coalesce делай что хочешь, тебе видней насколько он нужен.
Ты даёшь как минимум одну возможность для оптимизатора сделать FTA к hub_subject при превращении OR в concatenation.
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353945
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
env,

Update on law_party_stage stage  (cost=0.00..65166.17 rows=30 width=2160) (actual time=0.001..0.001 rows=0 loops=1)
  ->  Seq Scan on law_party_stage stage  (cost=0.00..65166.17 rows=30 width=2160) (actual time=0.000..0.000 rows=0 loops=1)
        SubPlan 2
          ->  Result  (cost=2171.85..2171.86 rows=1 width=0) (never executed)
                InitPlan 1 (returns $4)
                  ->  Limit  (cost=0.42..2171.85 rows=1 width=8) (never executed)
                        ->  Index Scan Backward using pk_hub_subject_right on hub_subject hub  (cost=0.42..8686.15 rows=4 width=8) (never executed)
                              Index Cond: (subj_id IS NOT NULL)
                              Filter: ((stage.inn = (inn)::text) OR (stage.snils_individual = (snils)::text) OR ((other_ident_code)::text = stage.other_ident_code) OR ((other_ident_code)::text = stage.other_ident_code_js))
Planning time: 0.252 ms
Execution time: 0.065 ms
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353972
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

postgress?
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39353993
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
env, да
Скобки забыл, все заработало 
update meta_data_vault.law_party_stage3322 stage
set subj_id = (
select max(hub.subj_id)
from templ.hub_subject hub
where (stage.inn = hub.inn
or (stage.snils_individual = hub.snils
or hub.other_ident_code = coalesce(stage.other_ident_code, stage.other_ident_code_js))));
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39354259
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

и какое отношение это имеет к Oracle ?
...
Рейтинг: 0 / 0
Подскажите как оптимизировать update
    #39354500
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй,

Это нормально, считается, что в этой ветке могут ответить на любой вопрос. В крайнем случае, ткнуть в правильную сторону в нужной ветке.

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


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