Обновления из большого количества таблиц - PullRequest
0 голосов
/ 08 июля 2019

Я хочу заполнить таблицу миллионами строк с большим количеством обновлений (около 600).

Я создал таблицу «all_combination ...» с идентификатором (appln_id) и соответствующими столбцами, где значения по умолчанию - «FALSE». Далее я попытался обновить столбцы из примерно 600 таблиц. Всякий раз, когда идентификатор из «всех_комбинаций» соответствует идентификатору в одной из таблиц, соответствующему столбцу присваивается значение «ИСТИНА». 600 имен таблиц соответствуют 600 столбцам, которые я хочу заполнить, например, 'A01C': Если A01C можно объединить с all_combination, столбец A01C должен быть установлен в TRUE. Я использую этот код около 3 дней. Любые идеи, как ускорить / улучшить код?

create table all_combinations_ipc4_compr (
appln_id INT DEFAULT NULL,
a01b BOOLEAN DEFAULT FALSE,
a01c BOOLEAN DEFAULT FALSE,
a01d BOOLEAN DEFAULT FALSE,
a01f BOOLEAN DEFAULT FALSE,
a01g BOOLEAN DEFAULT FALSE,
a01h BOOLEAN DEFAULT FALSE,
a01j BOOLEAN DEFAULT FALSE,
a01k BOOLEAN DEFAULT FALSE,
a01l BOOLEAN DEFAULT FALSE,
a01m BOOLEAN DEFAULT FALSE,
a01n BOOLEAN DEFAULT FALSE,
a01p BOOLEAN DEFAULT FALSE,
... 600 variables

insert into all_combinations_ipc4_compr
select distinct appln_id from other_table;
-- millions of IDs!

update all_combinations_ipc4_compr t1 set a01b=TRUE from a01b t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01c=TRUE from a01c t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01d=TRUE from a01d t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01f=TRUE from a01f t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01g=TRUE from a01g t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01h=TRUE from a01h t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01j=TRUE from a01j t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01k=TRUE from a01k t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01l=TRUE from a01l t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01m=TRUE from a01m t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01n=TRUE from a01n t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a01p=TRUE from a01p t2  where t1.appln_id=t2.appln_id;
update all_combinations_ipc4_compr t1 set a21b=TRUE from a21b t2  where t1.appln_id=t2.appln_id;
... 600 updates
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...