Производительность Postgres_fdw для соединения с удаленной базой данных

Я сделал SQL-запрос, который выполняется в удаленной базе данных (с использованием расширения postgres_fdw) и объединяет информацию из 2 разных таблиц в удаленной базе данных. Время выполнения запроса занимает около 5 минут, хотя я создал удаленный сервер с параметром use_remote_estimate в качестве true. Когда я выполняю тот же запрос непосредственно в самой удаленной базе данных, для получения результатов требуется менее 5 секунд. Могу ли я сделать что-то для лучшей производительности? Есть ли какие-либо настройки для лучшей производительности? Когда запрос выполняется из моей базы данных в удаленную базу данных, используются ли внешние ключи и индексы или нет? Я не уверен в этом. У меня есть поиск в сети для решения, но нет ответа покрыть мои потребности. Спасибо

Когда я выполняю EXPLAIN (ANALYZE BUFFER) для удаленной базы данных, я получаю следующие результаты:

QUERY PLAN
Merge Join  (cost=2920.60..6345984.84 rows=56546 width=440) (actual time=5874.882..834358.774 rows=3338 loops=1)
Merge Cond: (str.store_id = prf.store_id)
->  Sort  (cost=1221.49..1229.84 rows=3338 width=18) (actual time=2835.745..2840.122 rows=3338 loops=1)
Sort Key: str.store_id
Sort Method: quicksort  Memory: 314kB
->  Foreign Scan on store str  (cost=100.00..1026.14 rows=3338 width=18) (actual time=158.809..2832.790 rows=3338 loops=1)
->  Sort  (cost=1699.11..1707.58 rows=3388 width=23) (actual time=2882.143..2891.705 rows=3338 loops=1)
Sort Key: prf.store_id
Sort Method: quicksort  Memory: 350kB
->  Foreign Scan on store_profile prf  (cost=100.00..1500.47 rows=3388 width=23) (actual time=166.818..2878.937 rows=3338 loops=1)
SubPlan 1
->  Foreign Scan on store_profile p  (cost=100.29..112.16 rows=1 width=19) (actual time=165.285..165.287 rows=1 loops=3338)
Planning time: 495.796 ms
Execution time: 834678.186 ms

0 ответов

Другие вопросы по тегам