选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 配置参数 / 版本和平台兼容性

CONFIGURATION PARAMETER版本和平台兼容性 / 以前的 PostgreSQL 版本

synchronize_seqscans

启用同步顺序扫描。

Enables synchronized sequential scans.

布尔 会话 引入 9.0(基线) 现存至 20 devel 0 次默认值变更

类型
布尔bool
上下文
会话任何用户都可在会话内用 SET 修改
默认值
on
引入版本
9.0(基线)
状态
现存

PostgreSQL 18 手册 官方文档

版本轨迹

相对 PostgreSQL 17 仅简述或分类有更新。

默认值变迁

on 9.0 – 20

默认值自 PostgreSQL 9.0 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.13 版本和平台兼容性 本站手册 官方原文

本版译文与 PostgreSQL 10 完全一致,下面就是同一段文字。

它允许对大型表的顺序扫描与其他扫描同步,因此并发扫描可以在几乎相同的时刻读取相同的块,这样可以分担 I/O 负载。当启用这个参数时,一个扫描可能会从表的中间开始并且之后绕回到开头以覆盖所有的行,这样可以与已在进行中的扫描活动同步。对于没有ORDER BY子句的查询来,这样的扫描会在返回行的顺序中造成不可预料的改变。将这个参数设置为off以保证 8.3 之前的行为(顺序扫描总是从表的起始处开始)。默认值是on

机制详解

启用同步顺序扫描。它可在会话级修改,因此不同会话可能采用不同的行为。

该兼容开关改变旧客户端或旧 SQL 的解析/输出行为,而不是执行计划的常规性能旋钮。长期方案应修复客户端与 SQL,并在升级测试中移除兼容依赖。

应把 synchronize_seqscans 与 default_with_oids、lo_compat_privileges、operator_precedence_warning 一起监控和变更。先在对应角色与真实负载上验证,再按其 user context 选择会话修改、reload 或 restart;历史默认值并不等于当前有效值。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    通常保持开启,让并发大表扫描共享缓存足迹;需要确定行序时必须写 ORDER BY,不能靠关闭该参数。

  • OLAP分析与批处理

    分析负载最可能受益于 synchronized scans。只在可重复基准显示共享扫描位置损害局部性时做会话级试验。

  • 小规格低配实例与开发机

    保持默认;数据完全驻留缓存或几乎没有并发扫描时,它通常既无需调也不会成为瓶颈。

常见问题

  • 把兼容开关当作永久方案而不修复客户端。
  • 只在一个会话测试,却全局部署到所有应用。
  • 混淆解析兼容性与数据或安全兼容性。
  • 升级后忘记清理已经不需要的覆盖。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 18 ← 17 仅描述更新

    简述 Enable synchronized sequential scans. Enables synchronized sequential scans.

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
9.0 on 会话 布尔
9.1 on 会话 布尔
9.2 on 会话 布尔
9.3 on 会话 布尔
9.4 on 会话 布尔
9.5 on 会话 布尔
9.6 on 会话 布尔
10 on 会话 布尔
11 on 会话 布尔
12 on 会话 布尔
13 on 会话 布尔
14 on 会话 布尔
15 on 会话 布尔
16 on 会话 布尔
17 on 会话 布尔
18 on 会话 布尔
19 on 会话 布尔
20 沿用 on 会话 布尔

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Version and Platform Compatibility 版本和平台兼容性 10 个
以前的 PostgreSQL 版本 10
array_nulls 布尔 会话 on
允许在数组输入中使用 NULL 元素。 现存
backslash_quote 枚举 会话 safe_encoding
设置字符串字面量中是否允许使用反斜杠转义的单引号(\')。 现存
default_with_oids 布尔 会话 off
默认创建带 OID 的新表。 于 12 移除
escape_string_warning 布尔 会话 on
当普通字符串字面量含反斜杠转义时发出警告。 于 19 移除
lo_compat_privileges 布尔 会话(超级用户) off
启用大对象权限检查的向后兼容模式。 现存
operator_precedence_warning 布尔 会话 off
对自 PostgreSQL 9.4 起含义发生变化的表达式发出警告。 于 14 移除
quote_all_identifiers 布尔 会话 off
生成 SQL 片段时引用所有标识符。 现存
sql_inheritance 布尔 会话 on
让多种 SQL 命令默认包含继承子表。 于 10 移除
standard_conforming_strings 布尔 会话 on 9.11 次
使普通单引号字符串中的反斜杠按字面处理。 现存
synchronize_seqscans 布尔 会话 on
启用同步顺序扫描。 现存