EXTENDED STATISTICS 对 PostgreSQL 中的 INSERT/UPDATE/DELETE 有影响吗?
Posted
技术标签:
【中文标题】EXTENDED STATISTICS 对 PostgreSQL 中的 INSERT/UPDATE/DELETE 有影响吗?【英文标题】:Do EXTENDED STATISTICS have any influence on INSERT/UPDATE/DELETE in PostgreSQL? 【发布时间】:2020-04-29 16:40:42 【问题描述】:显然,正确创建的扩展统计信息可以对查询规划器在选择一些相互依赖的数据时评估 SELECT 查询的效率产生一些影响,但是它们对操作有任何影响,例如插入、更新和删除有任何表的表在其任何列上定义了 EXTENDED STATISTICS?
【问题讨论】:
【参考方案1】:UPDATE 和 DELETE 会受到影响,因为与 SELECT 一样,您可以为应该更新/删除的行指定条件。然后,计划器将构建一个查询计划来查找这些行,与 SELECT 一样,依赖于相同的统计信息。
INSERT 的行为以及 UPDATE 的 writing-new-row-versions 部分不受统计信息的影响。它们都以相同的确定性方式运行:它们将其行版本插入到第一个可用数据页中,该数据页有足够的可用空间来容纳该行,可以使用可用空间映射找到该数据页。
有关可用空间如何映射以及 PG 如何确定在何处写入新行版本的更多信息,请参阅https://github.com/postgres/postgres/blob/master/src/backend/storage/freespace/README。
【讨论】:
以上是关于EXTENDED STATISTICS 对 PostgreSQL 中的 INSERT/UPDATE/DELETE 有影响吗?的主要内容,如果未能解决你的问题,请参考以下文章
[20170625]12c Extended statistics.txt
12c带你了解Oracle 12c数据库扩展的统计信息(Extended Statistics)的搜集
12c带你了解Oracle 12c数据库扩展的统计信息(Extended Statistics)的搜集