synchronize_seqscans
是一个 配置参数,用于控制是否同步大型表的顺序扫描,以优化 I/O 使用。
synchronize_seqscans
在 PostgreSQL 8.3 中添加。
默认值
synchronize_seqscans
的默认值为:on
。
用法
将 synchronize_seqscans
设置为 off
将恢复 PostgreSQL 8.2 及更早版本中的行为。
按 PostgreSQL 版本分列的详细信息
synchronize_seqscans (PostgreSQL 17)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
挂起重启 |
否 |
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 16)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
挂起重启 |
否 |
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 15)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
挂起重启 |
否 |
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 14)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
挂起重启 |
否 |
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 13)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
挂起重启 |
否 |
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 12)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
挂起重启 |
否 |
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 11)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
挂起重启 |
否 |
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 10)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
挂起重启 |
否 |
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 9.6)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
挂起重启 |
否 |
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 9.5)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
挂起重启 |
否 |
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 9.4)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 9.3)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 9.2)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 9.1)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 9.0)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 8.4)
设置 |
开启 |
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
枚举值 |
|
启动值 |
开启 |
重置值 |
开启 |
源文件 |
|
源代码行号 |
|
文档: synchronize_seqscans
synchronize_seqscans (PostgreSQL 8.3)
设置 |
|
单位 |
|
类别 |
版本和平台兼容性/以前的 PostgreSQL 版本 |
简短描述 |
启用同步顺序扫描。 |
额外描述 |
|
上下文 |
用户 |
变量类型 |
布尔值 |
来源 |
默认值 |
最小值 |
|
最大值 |
|
文档: synchronize_seqscans
更改历史记录
示例
此简单示例显示了 synchronize_seqscans
设置为 on
(默认值)和 off
时规划器行为的差异。
postgres=# EXPLAIN ANALYZE SELECT * FROM foo WHERE id > 10000 limit 5;
QUERY PLAN
--------------------------------------------------------------------------------------------------------------
Limit (cost=0.00..0.25 rows=5 width=4) (actual time=0.136..0.137 rows=5 loops=1)
-> Seq Scan on foo (cost=0.00..185288.50 rows=3761080 width=4) (actual time=0.135..0.136 rows=5 loops=1)
Filter: (id > 10000)
Rows Removed by Filter: 2768
Planning Time: 0.033 ms
Execution Time: 0.145 ms
(6 rows)
postgres=# SET synchronize_seqscans TO off;
SET
postgres=# EXPLAIN ANALYZE SELECT * FROM foo WHERE id > 10000 limit 5;
QUERY PLAN
--------------------------------------------------------------------------------------------------------------
Limit (cost=0.00..0.25 rows=5 width=4) (actual time=0.470..0.471 rows=5 loops=1)
-> Seq Scan on foo (cost=0.00..185288.50 rows=3761080 width=4) (actual time=0.469..0.469 rows=5 loops=1)
Filter: (id > 10000)
Rows Removed by Filter: 10000
Planning Time: 0.035 ms
Execution Time: 0.484 ms
(6 rows)