У меня довольно простой запрос
UPDATE TableA
SET date_type = TableB.date_type
FROM TableB
WHERE TableB.int_type = TableA.int_type
Мои индексы: TableA(int_type)
, TableB(int_type, date_type)
EXPLAIN
Результаты:
Update on TableA (cost=2788789.320..34222368.900 rows=82594592 width=261)
-> Hash Join (cost=2788789.320..34222368.900 rows=82594592 width=261)
Hash Cond: (TableA.int_type = TableB.int_type)
-> Seq Scan on tableA (cost=0.000..12610586.960 rows=101433296 width=247)
-> Hash (cost=1272403.920..1272403.920 rows=82594592 width=18)
-> Seq Scan on TableB (cost=0.000..1272403.920 rows=82594592 width=18)
Запросвыполняется более 3 часов.
Что можно сделать, чтобы он работал быстрее?Как видно из результатов EXPLAIN
, индексы не используются.Стоит ли выбирать другие индексы / делать какие-либо другие улучшения, чтобы запрос выполнялся быстрее?
Postgresql 9.6