У меня есть таблица из нескольких миллионов записей, к которым я выполняю запрос и вставляю результаты в другую таблицу, которую будут запрашивать клиенты.Этот процесс занимает около 20 секунд.
Как выполнить этот запрос, построив эту новую таблицу без влияния на клиентов, которые могут выполнять запросы к целевой таблице?
Например.Я запускаю
BEGIN;
DROP TABLE target_table;
SELECT blah, blahX, blahY
INTO target_table
FROM source_table
GROUP BY blahX, blahY
COMMIT;
, который затем блокирует запросы к:
SELECT SUM(blah)
FROM target_table
WHERE blahX > x
В дни работы с некоторыми администраторами баз данных SQL Server я вспоминаю, как они создавали временные таблицы, а затем переворачивали ихв течение текущей таблицы.Это выполнимо / практично в Postgres?