postgres_fdw уменьшает загрузку данных во время анализа - PullRequest
1 голос
/ 31 марта 2020

Во время анализа сторонней таблицы я вижу много postgres_fdw выборок на стороннем сервере. Для больших таблиц он извлекает все это, хотя он дает мне 300 записей в выборке:

INFO: "test_table": table contains 59280698 rows, 300 rows in sample

Я думал, что он будет отправлять только те данные, которые используются в staticti c выборках, но выглядит как целое таблица отправляется запрашивающей стороне. Я попытался изменить default_statistic_target для каждого столбца:

ALTER TABLE test_table
  ALTER COLUMN id SET STATISTICS 1

Но не похоже, чтобы в выборках была какая-либо разница.

Есть ли какая-либо опция для уменьшения I / сетевых данных? O при анализе зарубежных postgresql таблиц?

PS. Я не хочу включать use_remote_estimates. В 9.6.9 он повреждает разделяемую память, в 9.6.17 выдает ошибку в некоторых запросах.

1 Ответ

1 голос
/ 31 марта 2020

ANALYZE на внешней таблице PostgreSQL будет запускаться

SELECT * ON atable;

на удаленной таблице. Образец создается с применением алгоритма Виттера к результату.

Возможно, будет интересно использовать TABLESAMPLE для извлечения только части таблицы, но это еще не реализовано.

...