Я использую postgres 9.X. У меня есть две таблицыГруппа Postgres по обновлению - медленный запрос
Table A
(
id integer
);
Table B
(
id integer,
Value integer
);
Обе таблицы индексируются по идентификатору.
Таблица A может иметь дубликат идентификаторы
Example:
Table A
ID
1
1
1
2
1
Я намерен ввести число вхождений ID в таблицу В (Эта таблица содержит все идентификаторы, которые находятся в таблице A, но значение равно 0, первоначально)
Table B
ID Value
1 4
2 1
3 0
4 0
Вот мой SQL заявление
update tableB set value = value + sq.total
from
(select id, count(*) as total from TableA group by id) as sq
where sq.id = tableB.id;
С 3-10 миллионов записей в TableA, это та король ужасное количество времени. Я могу оптимизировать этот запрос?
У вас есть - for istance - индекс b-дерева в первом индексе таблицы? Может быть, это поможет вам. – DonCallisto
Привет, у меня есть индекс B-дерева на «id» в обеих таблицах. – KarthikRajagopal
Это была моя единственная идея ... Я не знаю, как вы можете улучшить время работы ... Извините – DonCallisto