1

在分析外部表期间,我postgres_fdw在外部服务器上看到了很多获取。对于大表,它会获取所有数据,即使它在样本中给了我 300 条记录:

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

我认为它只会发送静态样本中使用的数据,但看起来整个表正在发送给请求者。我试图改变default_statistic_target每一列:

ALTER TABLE test_table
  ALTER COLUMN id SET STATISTICS 1

但它看起来在获取方面没有任何区别。

在分析外部 postgresql 表期间是否有任何选项可以减少网络数据 I/O?

PS。我不想开机use_remote_estimates9.6.9它破坏了共享内存,在某些9.6.17查询中给出了错误。

4

1 回答 1

1

ANALYZE在外部 PostgreSQL 表上将运行

SELECT * ON atable;

在远程桌子上。样本是通过将Vitter 算法应用于结果来创建的。

仅用于检索表的一部分可能是一个有趣的增强功能TABLESAMPLE,但尚未实现。

于 2020-03-31T12:15:48.067 回答