enable_async_append

一个系统参数,用于确定是否使用异步感知的追加计划类型

enable_async_append 是一个 配置参数,用于确定查询规划器是否使用异步感知的追加计划类型。        

enable_async_appendPostgreSQL 14 中添加。

默认值

enable_async_append 的默认值为:on

按 PostgreSQL 版本查看详情

enable_async_append (PostgreSQL 17)

设置 on
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用异步追加计划。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
待重启 false

文档: enable_async_append

enable_async_append (PostgreSQL 16)

设置 on
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用异步追加计划。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
待重启 false

文档: enable_async_append

enable_async_append (PostgreSQL 15)

设置 on
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用异步追加计划。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
待重启 false

文档: enable_async_append

enable_async_append (PostgreSQL 14)

设置 on
单位  
类别 查询调优 / 规划器方法配置
简短描述 启用规划器使用异步追加计划。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
待重启 false

文档: enable_async_append

更改历史

示例

假设一个分区表设置如下

postgres=# \d+ parttest
                                   Partitioned table "public.parttest"
 Column |  Type   | Collation | Nullable | Default | Storage  | Compression | Stats target | Description 
--------+---------+-----------+----------+---------+----------+-------------+--------------+-------------
 id     | integer |           | not null |         | plain    |             |              | 
 val1   | text    |           |          |         | extended |             |              | 
 val2   | text    |           |          |         | extended |             |              | 
Partition key: HASH (id)
Partitions: parttest_4_0 FOR VALUES WITH (modulus 4, remainder 0),
            parttest_4_1 FOR VALUES WITH (modulus 4, remainder 1),
            parttest_4_2 FOR VALUES WITH (modulus 4, remainder 2),
            parttest_4_3 FOR VALUES WITH (modulus 4, remainder 3)

其中各个分区是位于不同服务器上的 外部表,则以下查询应生成如下计划

postgres=# EXPLAIN (verbose, analyze) select * FROM parttest;
                                                                      QUERY PLAN                                                                      
------------------------------------------------------------------------------------------------------------------------------------------------------
 Append  (cost=100.00..4345.00 rows=100000 width=68) (actual time=2.067..145.652 rows=100000 loops=1)
   ->  Async Foreign Scan on public.parttest_4_0 parttest_1  (cost=100.00..965.78 rows=25126 width=68) (actual time=1.104..29.017 rows=25126 loops=1)
         Output: parttest_1.id, parttest_1.val1, parttest_1.val2
         Remote SQL: SELECT id, val1, val2 FROM public.parttest_4_0
   ->  Async Foreign Scan on public.parttest_4_1 parttest_2  (cost=100.00..960.34 rows=24978 width=68) (actual time=1.057..26.778 rows=24978 loops=1)
         Output: parttest_2.id, parttest_2.val1, parttest_2.val2
         Remote SQL: SELECT id, val1, val2 FROM public.parttest_4_1
   ->  Async Foreign Scan on public.parttest_4_2 parttest_3  (cost=100.00..960.13 rows=24971 width=68) (actual time=0.319..15.856 rows=24971 loops=1)
         Output: parttest_3.id, parttest_3.val1, parttest_3.val2
         Remote SQL: SELECT id, val1, val2 FROM public.parttest_4_2
   ->  Async Foreign Scan on public.parttest_4_3 parttest_4  (cost=100.00..958.75 rows=24925 width=68) (actual time=0.284..17.054 rows=24925 loops=1)
         Output: parttest_4.id, parttest_4.val1, parttest_4.val2
         Remote SQL: SELECT id, val1, val2 FROM public.parttest_4_3
 Query Identifier: 5644017674074468972
 Planning Time: 0.642 ms
 Execution Time: 152.617 ms
(16 rows)

分类

GUC 配置项规划器

反馈

提交关于 "enable_async_append" 的任何评论、建议或更正 此处