Azure Database for PostgreSQL 灵活服务器中的服务器参数

适用于:Azure Database for PostgreSQL - 灵活服务器

Azure Database for PostgreSQL 为每个服务器都提供了一部分可配置的参数。 有关 Postgres 参数的详细信息,请参阅 PostgreSQL 文档

参数类型

Azure Database for PostgreSQL 灵活服务器预配置了每个参数的最佳默认设置。 参数分为以下类型之一:

  • 静态:这些参数需要重启服务器才能实现任何更改。
  • 动态:无需重启服务器实例即可更改这些参数。 但是,更改仅适用于修改后建立的新连接。
  • 只读:这些参数在维护服务的可靠性、安全性或其他操作方面起着关键作用,因此用户无法配置它们。

若要确定参数类型,请转到 Azure 门户,然后打开“服务器参数”窗格。 参数分组到选项卡中,以便轻松识别。

参数自定义

可以使用各种方法和级别根据特定需求来自定义参数。

全局级别

若要在实例或服务器级别全局更改设置,请转到 Azure 门户中的“服务器参数”窗格。 还可以使用其他可用工具,例如 Azure CLI、REST API、Azure 资源管理器模板或合作伙伴工具。

注意

Azure Database for PostgreSQL 是托管数据库服务,因此用户没有主机或操作系统访问权限,无法查看或修改配置文件(例如 postgresql.conf)。 这些文件的内容会根据所做的参数更改自动更新。

Azure 门户中服务器参数窗格的屏幕截图。

精细级别

可以在更精细的级别调整参数。 这些调整将覆盖全局设置的值。 它们的范围和持续时间取决于你创建它们的级别:

  • 数据库级别:使用 ALTER DATABASE 命令进行特定于数据库的配置。

  • 角色或用户级别:使用 ALTER USER 命令进行以用户为中心的设置。

  • 函数、过程级别:定义函数或过程时,可以指定或更改将在调用函数时设置的配置参数。

  • 表级别:例如,可在此级别修改与自动清理相关的参数。

  • 会话级别:在单个数据库会话的持续时间内,可以调整特定参数。 PostgreSQL 通过以下 SQL 命令促进这种调整:

    • 使用 SET 命令进行特定于会话的调整。 这些更改将作为当前会话期间的默认设置。 要访问这些更改,可能需要特定的 SET 权限,并且上述可修改参数和只读参数的限制不适用。 相应的 SQL 函数为 set_config(setting_name, new_value, is_local)
    • 使用 SHOW 命令检查现有参数设置。 其 SQL 函数等效项为 current_setting(setting_name text)

支持的服务器参数

Autovacuum

名称 版本 说明
autovacuum 111213141516 控制服务器是否应运行 autovacuum 子进程。
autovacuum_analyze_scale_factor 111213141516 指定在决定是否触发清扫作业时要添加到 autovacuum_vacuum_threshold 的表大小的占比。
autovacuum_analyze_threshold 111213141516 设置在任一表中触发 ANALYZE 所需的已插入、已更新或已删除元组的最小数量。
autovacuum_freeze_max_age 111213141516 触发表 autovacuum 之前的最大期限(在事务中)以防止事务 ID 重叠。
autovacuum_max_workers 111213141516 设置同时运行的 autovacuum 工作进程数量上限。
autovacuum_multixact_freeze_max_age 111213141516 触发表 autovacuum 之前的最大期限(在 multixact 中)以防止 multixact 重叠。
autovacuum_naptime 111213141516 设置在任何给定数据库上运行 autovacuum 之间的最小延迟。
autovacuum_vacuum_cost_delay 111213141516 设置将在自动 VACUUM 操作中使用的成本延迟值(毫秒)。
autovacuum_vacuum_cost_limit 111213141516 设置将在自动 VACUUM 操作中使用的成本限制值。
autovacuum_vacuum_insert_scale_factor 13141516 指定在决定是否触发 VACUUM 时要添加到 autovacuum_vacuum_insert_threshold 的表大小的占比。
autovacuum_vacuum_insert_threshold 13141516 指定在任何一个表中触发 VACUUM 所需的已插入元组数。
autovacuum_vacuum_scale_factor 111213141516 指定在决定是否触发清扫作业时要添加到 autovacuum_vacuum_threshold 的表大小的占比。
autovacuum_vacuum_threshold 111213141516 指定在任一表中触发清扫作业所需的已更新或已删除元组的最小数量。

客户端连接默认值/区域设置和格式设置

名称 版本 说明
client_encoding 111213141516 设置客户端编码(字符集)。 默认值是使用数据库编码。
DateStyle 111213141516 设置日期和时间值的显示格式。
default_text_search_config 111213141516 选择文本搜索函数的这些变体使用的文本搜索配置,这些变体没有显式参数指定它。
extra_float_digits 111213141516 设置要为浮点值显示的位数。
IntervalStyle 111213141516 设置间隔值的显示格式。
lc_messages 111213141516 设置消息的显示语言。
lc_monetary 111213141516 设置用于指定货币金额格式的区域设置。
lc_numeric 111213141516 设置用于指定数字格式的区域设置。
lc_time 111213141516 设置用于指定日期和时间值格式的区域设置。
TimeZone 111213141516 设置用于显示和解释时间戳的时区。
timezone_abbreviations 111213141516 选择时区缩写的文件。

客户端连接默认值/其他默认值

名称 版本 说明
dynamic_library_path 111213141516 设置可动态加载模块的路径。
gin_fuzzy_search_limit 111213141516 设置按 GIN 进行的精确匹配搜索允许的最大结果数。

客户端连接默认值/共享库预加载

名称 版本 说明
jit_provider 111213141516 要使用的 JIT 提供程序。
local_preload_libraries 111213141516 列出要预加载到每个后端的无特权共享库。
session_preload_libraries 111213141516 列出要预加载到每个后端的共享库。
shared_preload_libraries 111213141516 设置在服务器启动时预加载的共享库。

客户端连接默认值/语句行为

名称 版本 说明
bytea_output 111213141516 设置 bytea 类型的值的输出格式。 有效值为十六进制(默认值)和转义(传统的 PostgreSQL 格式)。
check_function_bodies 111213141516 在 CREATE FUNCTION 期间检查函数主体。
client_min_messages 111213141516 控制发送到客户端的消息级别。
default_table_access_method 1213141516 设置新表的默认表访问方法。
default_tablespace 111213141516 设置要在其中创建表和索引的默认表空间。
default_toast_compression 141516 设置可压缩值的默认压缩方法。
default_transaction_deferrable 111213141516 此参数控制每个新事务的默认可延迟状态。 它对读写事务或那些在低于可序列化的隔离级别下操作的事务没有影响。
default_transaction_isolation 111213141516 此参数控制每个新事务的默认隔离级别。 默认值为“read committed”。
default_transaction_read_only 111213141516 设置每个新事务的默认只读状态。
gin_pending_list_limit 111213141516 设置 GIN 索引的挂起列表的最大大小。
idle_in_transaction_session_timeout 111213141516 设置任何空闲事务允许的最大持续时间。
idle_session_timeout 141516 设置查询之间允许的最大空闲时间(不在事务中时)。
lock_timeout 111213141516 设置任何等待锁操作允许的最长持续时间(以毫秒为单位)。 指定 0 会禁用此设置。
row_security 111213141516 启用行安全性。
search_path 111213141516 设置非架构限定的名称的架构搜索顺序。
session_replication_role 111213141516 控制触发当前会话的复制相关触发器和规则。
statement_timeout 111213141516 设置任何语句允许的最长持续时间(以毫秒为单位)。 指定 0 会禁用此设置。
temp_tablespaces 111213141516 设置用于临时表并在 CREATE 命令中未指定时对文件进行排序的默认表空间。
transaction_deferrable 111213141516 是否延迟只读可序列化事务,直到可以执行该事务,且不会发生可能的序列化失败。
transaction_isolation 111213141516 设置当前事务的隔离级别。
transaction_read_only 111213141516 设置当前事务的只读状态。
vacuum_cleanup_index_scale_factor 111213 索引清理之前的元组插入数(作为再元组的一部分)。
vacuum_failsafe_age 141516 VACUUM 触发防故障以避免回绕中断应达到的期限。
vacuum_freeze_min_age 111213141516 指定在扫描表时,VACUUM 应用于决定是否冻结行版本的截止期限(在事务中)。
vacuum_freeze_table_age 111213141516 VACUUM 扫描整个表以冻结元组应达到的期限。
vacuum_multixact_failsafe_age 141516 VACUUM 触发防故障以避免回绕中断应达到的 Multixact 期限。
vacuum_multixact_freeze_min_age 111213141516 指定在扫描表时,VACUUM 应用于决定是将 multixact ID 替换为较新事务 ID 还是 multixact ID 的截止期限(在 multixact 中)。
vacuum_multixact_freeze_table_age 111213141516 如果表已达到此设置指定的期限,VACUUM 将执行完整表扫描来冻结行。
xmlbinary 111213141516 设置如何在 XML 中对二进制值进行编码。
xmloption 111213141516 设置是要将隐式分析和序列化操作中的 XML 数据视为文档还是内容片段。

连接和身份验证/身份验证

名称 版本 说明
authentication_timeout 111213141516 设置完成客户端身份验证的最大允许时间。
db_user_namespace 111213141516 启用每数据库用户名。
krb_caseins_users 111213141516 设置是否应将 Kerberos 和 GSSAPI 用户名视为不区分大小写。
krb_server_keyfile 111213141516 设置 Kerberos 服务器密钥文件的位置。
password_encryption 111213141516 确定用于加密密码的算法。

连接和身份验证/连接设置

名称 版本 说明
bonjour 111213141516 允许通过 Bonjour 播发服务器。
bonjour_name 111213141516 设置 Bonjour 服务名称。
listen_addresses 111213141516 设置要侦听的主机名或 IP 地址。
max_connections 111213141516 设置与数据库服务器的并发连接数量上限。
port 111213141516 设置服务器侦听的 TCP 端口。
reserved_connections 111213141516 设置为复制用户和超级用户保留的连接槽数。
superuser_reserved_connections 111213141516 设置为超级用户保留的连接槽数。
unix_socket_directories 111213141516 设置将在其中创建 Unix 域套接字的目录。
unix_socket_group 111213141516 设置 Unix 域套接字的拥有组。
unix_socket_permissions 111213141516 设置 Unix 域套接字的访问权限。

连接和身份验证/SSL

名称 版本 说明
ssl 111213141516 启用 SSL 连接。
ssl_ca_file 111213141516 SSL 证书颁发机构文件的位置。
ssl_cert_file 111213141516 SSL 服务器证书文件的位置。
ssl_ciphers 111213141516 设置允许的 SSL 密码列表。
ssl_crl_dir 141516 SSL 证书吊销列表目录的位置。
ssl_crl_file 111213141516 SSL 证书吊销列表文件的位置。
ssl_dh_params_file 111213141516 SSL DH 参数文件的位置。
ssl_ecdh_curve 111213141516 设置用于 ECDH 的曲线。
ssl_key_file 111213141516 SSL 服务器私钥文件的位置。
ssl_max_protocol_version 1213141516 设置要使用的最高 SSL/TLS 协议版本。
ssl_min_protocol_version 1213141516 设置要使用的最低 SSL/TLS 协议版本。
ssl_passphrase_command 111213141516 用于获取 SSL 通行短语的命令。
ssl_passphrase_command_supports_reload 111213141516 控制是否在服务器重新加载期间调用 ssl_passphrase_command。
ssl_prefer_server_ciphers 111213141516 优先考虑服务器密码套件顺序。

连接和身份验证/TCP 设置

名称 版本 说明
client_connection_check_interval 141516 设置在运行查询时检查断开连接之间的时间间隔。
tcp_keepalives_count 111213141516 指定在服务器与客户端的连接被视为已断开前可能会丢失的 TCP keepalive 数。
tcp_keepalives_idle 111213141516 指定非活动状态的秒数,之后 TCP 应向客户端发送 keepalive 消息。
tcp_keepalives_interval 111213141516 指定未经客户端确认的 TCP keepalive 消息应重新传输之前的秒数。
tcp_user_timeout 1213141516 指定在强制关闭 TCP 连接之前传输的数据可能保持未确认的时间量。

自定义选项

名称 版本 说明
auto_explain.log_analyze 111213141516 使用 EXPLAIN ANALYZE 进行计划日志记录。
auto_explain.log_buffers 111213141516 日志缓冲区使用情况。
auto_explain.log_format 111213141516 用于计划日志记录的 EXPLAIN 格式。
auto_explain.log_level 1213141516 计划的日志级别。
auto_explain.log_min_duration 111213141516 设置将记录计划的最低执行时间。 零打印所有计划。 -1 关闭此功能。
auto_explain.log_nested_statements 111213141516 记录嵌套语句。
auto_explain.log_settings 1213141516 记录影响查询计划的已修改配置参数。
auto_explain.log_timing 111213141516 收集计时数据,而不仅仅是行计数。
auto_explain.log_triggers 111213141516 在计划中包括触发器统计信息。 除非还设置了 log_analyze,否则这不起作用。
auto_explain.log_verbose 111213141516 使用 EXPLAIN VERBOSE 进行计划日志记录。
auto_explain.log_wal 13141516 记录 WAL 使用情况。
auto_explain.sample_rate 111213141516 要处理的查询的占比。
azure.accepted_password_auth_method 111213141516 接受的密码身份验证方法。
azure.allow_hostname_in_username 11 指定是否允许在 Azure Database for PostgreSQL 灵活服务器的用户名中使用主机名。
azure.enable_temp_tablespaces_on_local_ssd 111213141516 在临时磁盘上创建临时表空间。
azure.extensions 111213141516 指定允许在服务器中创建哪些扩展。
azure.single_to_flex_migration 111213141516 指定这是否是为从 Azure Database for PostgreSQL 单一服务器迁移到灵活服务器而创建的服务器。
cron.database_name 111213141516 设置在其中保留 pg_cron 元数据的数据库。
cron.log_run 111213141516 将所有作业记录到 job_run_details 表中。
cron.log_statement 111213141516 在执行之前记录所有 cron 语句。
cron.max_running_jobs 111213141516 设置可并发运行的作业数量上限。 此值受 max_connections 限制。
pgaudit.log 111213141516 指定会话审核日志记录将记录哪些语句类。
pgaudit.log_catalog 111213141516 指定在语句中的所有关系都处于 pg_catalog 的情况下,应启用会话日志记录。
pgaudit.log_client 111213141516 指定审核消息是否应对客户端可见。
pgaudit.log_level 111213141516 指定将用于日志条目的日志级别。
pgaudit.log_parameter 111213141516 指定审核日志记录应包含随语句一起传递的参数。
pgaudit.log_relation 111213141516 指定会话审核日志记录是否应为 SELECT 或 DML 语句中引用的每个关系创建单独的日志条目。
pgaudit.log_statement_once 111213141516 指定日志记录是包含语句文本和参数以及语句/子语句组合的第一个日志条目还是每个条目。
pgaudit.role 111213141516 指定要用于对象审核日志记录的主角色。
pglogical.batch_inserts 111213141516 如果可能,请告知 PGLogical 使用批量插入机制。
pglogical.conflict_log_level 111213141516 设置当 pglogical.conflict_resolution 设置为除 error 以外的任何值时报告检测到的冲突的日志级别。
pglogical.conflict_resolution 111213141516 设置本地数据和传入更改之间检测到的任何冲突的解决方法。
pglogical.use_spi 111213141516 告知 PGLogical 使用 SPI 接口形成实际 SQL(INSERT、UPDATE、DELETE)语句来应用传入更改,而不是使用内部低级别接口。
pgms_stats.is_enabled_fs 111213141516 仅供内部使用:此参数用作功能覆盖开关。
pgms_wait_sampling.history_period 111213141516 设置等待事件采样的频率(以毫秒为单位)。
pgms_wait_sampling.is_enabled_fs 111213141516 仅供内部使用:此参数用作功能覆盖开关。 如果显示为“关闭”,那么即使为 pgms_wait_sampling.query_capture_mode 设置了值,等待采样也会被禁用。
pgms_wait_sampling.query_capture_mode 111213141516 选择 pgms_wait_sampling 扩展跟踪哪些语句。
pg_partman_bgw.analyze 111213141516 与 run_maintenance() 的 p_analyze 参数的用途相同。
pg_partman_bgw.dbname 111213141516 必需。 run_maintenance() 将运行的数据库。 如果存在多个数据库,请使用逗号分隔的列表。 如果未设置,BGW 将不执行任何操作。
pg_partman_bgw.interval 111213141516 调用 run_maintenance() 的间隔秒数。
pg_partman_bgw.jobmon 111213141516 与 run_maintenance() 的 p_jobmon 自变量的用途相同。
pg_partman_bgw.role 111213141516 run_maintenance() 将作为其运行的角色。 默认值为 postgres。 仅支持单个角色名称。
pg_qs.interval_length_minutes 111213141516 设置 pg_qs 的 query_store 捕获间隔(以分钟为单位)- 这是持久保存数据的频率。
pg_qs.is_enabled_fs 111213141516 仅供内部使用:此参数用作功能覆盖开关。 如果显示为关闭,那么即使为 pg_qs.query_capture_mode 设置了值,查询存储也会被禁用。
pg_qs.max_plan_size 111213141516 为 pg_qs 设置将要保存的查询计划文本最大字节数;过长的计划会被截断。
pg_qs.max_query_text_length 111213141516 设置将保存的最大查询文本长度;将截断较长的查询。
pg_qs.query_capture_mode 111213141516 设置查询存储的查询捕获模式。 None 禁用任何捕获。
pg_qs.retention_period_in_days 111213141516 设置 pg_qs 的保留期窗口(以天为单位)- 数据将在此时间之后删除。
pg_qs.store_query_plans 111213141516 为 pg_qs 打开或关闭保存查询计划的功能
pg_qs.track_utility 111213141516 选择 pg_qs 是否跟踪实用程序命令。
pg_stat_statements.max 111213141516 设置 pg_stat_statements 跟踪的语句数量上限。
pg_stat_statements.save 111213141516 每次服务器关机后保存 pg_stat_statements 统计信息。
pg_stat_statements.track 111213141516 控制 pg_stat_statements 对哪些语句进行计数。
pg_stat_statements.track_utility 111213141516 选择是否由 pg_stat_statements 跟踪实用程序命令。

开发人员选项

名称 版本 说明
allow_in_place_tablespaces 111213141516 允许直接位于 pg_tblspc 内的表空间进行测试。
allow_system_table_mods 111213141516 允许修改系统表的结构。
backtrace_functions 13141516 记录这些函数中错误的回溯。
debug_discard_caches 141516 出于调试目的,主动刷新系统缓存。
debug_parallel_query 16 强制使用并行查询工具。
force_parallel_mode 1112131415 强制使用并行查询工具。
ignore_checksum_failure 111213141516 在校验和失败后继续处理。
ignore_invalid_pages 13141516 在页面无效失败后继续恢复。
ignore_system_indexes 111213141516 禁止读取系统索引。
jit_debugging_support 111213141516 向调试程序注册 JIT 编译的函数。
jit_dump_bitcode 111213141516 写出 LLVM Bitcode 以方便 JIT 调试。
jit_expressions 111213141516 允许 JIT 编译表达式。
jit_profiling_support 111213141516 向性能探查器注册 JIT 编译的函数。
jit_tuple_deforming 111213141516 允许 JIT 编译元组变形。
post_auth_delay 111213141516 设置在连接启动时进行身份验证之后等待的时间量。
pre_auth_delay 111213141516 设置在连接启动时进行身份验证之前等待的时间量。
remove_temp_files_after_crash 1416 在后端崩溃后删除临时文件。
trace_notify 111213141516 为 LISTEN 和 NOTIFY 生成调试输出。
trace_recovery_messages 111213141516 启用与恢复相关的调试信息的日志记录。
trace_sort 111213141516 发出有关排序中资源使用情况的信息。
wal_consistency_checking 111213141516 设置执行 WAL 一致性检查的 WAL 资源管理器。
zero_damaged_pages 111213141516 继续处理已损坏的页眉。

错误处理

名称 版本 说明
data_sync_retry 111213141516 同步数据文件失败后是否继续运行。
exit_on_error 111213141516 发生任何错误时会终止会话。
recovery_init_sync_method 141516 设置在故障恢复之前同步数据目录的方法。
restart_after_crash 111213141516 在后端故障后重新初始化服务器。

文件位置

名称 版本 说明
config_file 111213141516 设置服务器的主配置文件。
data_directory 111213141516 设置服务器的数据目录。
external_pid_file 111213141516 将 postmaster PID 写入指定文件。
hba_file 111213141516 设置服务器的“hba”配置文件。
ident_file 111213141516 设置服务器的“ident”配置文件。

锁管理

名称 版本 说明
deadlock_timeout 111213141516 设置在检查死锁之前等待某个锁的时间量(以毫秒为单位)。
max_locks_per_transaction 111213141516 设置每个事务可以获取的锁定数量上限。 运行副本服务器时,必须将此参数设置为与主服务器上的值相同或更高的值。
max_pred_locks_per_page 111213141516 设置每页的谓词锁定元组数量上限。
max_pred_locks_per_relation 111213141516 设置每个关系的谓词锁定页和元组数量上限。
max_pred_locks_per_transaction 111213141516 设置每个事务的谓词锁定数量上限。

预设选项

名称 版本 说明
block_size 111213141516 显示磁盘块的大小。
data_checksums 111213141516 显示是否为此群集启用数据校验和。
data_directory_mode 111213141516 显示数据目录的模式。
debug_assertions 111213141516 显示正在运行的服务器是否启用了断言检查。
in_hot_standby 141516 显示热备用服务器当前是否处于活动状态。
integer_datetimes 111213141516 显示日期/时间是否基于整数。
lc_collate 1112131415 显示排序规则顺序区域设置。
lc_ctype 1112131415 显示字符分类和大小写转换区域设置。
max_function_args 111213141516 显示函数自变量的最大数目。
max_identifier_length 111213141516 显示最大标识符长度。
max_index_keys 111213141516 显示索引键的最大数目。
segment_size 111213141516 显示每个磁盘文件的页面数。
server_encoding 111213141516 显示服务器(数据库)字符集编码。
server_version 111213141516 显示服务器版本。
server_version_num 111213141516 将服务器版本显示为整数。
shared_memory_size 1516 显示服务器的主共享内存区域的大小(向上舍入到最近的 MB)。
shared_memory_size_in_huge_pages 1516 显示主共享内存区域所需的大型页数。
ssl_library 1213141516 显示 SSL 库的名称。
wal_block_size 111213141516 显示预写日志中的块大小。
wal_segment_size 111213141516 显示预写日志段的大小。

进程标题

名称 版本 说明
cluster_name 111213141516 设置进程标题中包含的群集名称。
update_process_title 111213141516 更新进程标题以显示活动 SQL 命令。

查询优化/基因查询优化器

名称 版本 说明
geqo 111213141516 启用基因查询优化。
geqo_effort 111213141516 GEQO:为其他 GEQO 参数设置默认值所付出的工作量。
geqo_generations 111213141516 GEQO:算法的迭代次数。
geqo_pool_size 111213141516 GEQO:种群中的个体数目。
geqo_seed 111213141516 GEQO:用于选择随机路径的种子。
geqo_selection_bias 111213141516 GEQO:种群内部的选择性压力。
geqo_threshold 111213141516 设置 FROM 项的阈值,超过该阈值时会使用 GEQO。

查询优化/其他规划器选项

名称 版本 说明
constraint_exclusion 111213141516 控制查询规划器使用表约束优化查询的行为。
cursor_tuple_fraction 111213141516 设置规划器对要检索的游标行的分数的估算值。
default_statistics_target 111213141516 为没有列特定目标的表列设置默认统计信息目标。
from_collapse_limit 111213141516 规划器会在 FROM 子句中将子查询合并到不超过此限制的上限查询中。 较小值可缩短计划时间,但可能会生成低级的查询计划。
jit 111213141516 确定 PostgreSQL 是否可以使用 JIT 编译。
join_collapse_limit 111213141516 设置 FROM 列表的大小,超过该大小时将不平展 JOIN 构造。
plan_cache_mode 1213141516 控制规划器选择自定义或通用计划的行为。
recursive_worktable_factor 1516 设置规划器对递归查询的工作表的平均大小的估计值。

查询优化/规划器成本常数

名称 版本 说明
cpu_index_tuple_cost 111213141516 设置规划器对索引扫描期间处理每个索引条目的成本估算值。
cpu_operator_cost 111213141516 设置规划器对查询期间处理执行的每个运算符或函数的成本估计值。
cpu_tuple_cost 111213141516 设置规划器对查询期间处理每一行的成本估计值。
effective_cache_size 111213141516 设置规划器对磁盘缓存大小做出的假设。
jit_above_cost 111213141516 设置激活 JIT 编译(如果已启用)的查询成本。
jit_inline_above_cost 111213141516 设置 JIT 编译尝试内联函数和运算符的查询成本。
jit_optimize_above_cost 111213141516 设置 JIT 编译应用昂贵优化的查询成本。
min_parallel_index_scan_size 111213141516 设置并行扫描的最小索引数据量。
min_parallel_table_scan_size 111213141516 设置要考虑的并行扫描必须扫描的最小表数据量。
parallel_setup_cost 111213141516 设置规划器对为并行查询启动工作进程的成本的估算值。
parallel_tuple_cost 111213141516 设置规划器对将每个元组(行)从辅助角色传递到主后端的成本估算值。
random_page_cost 111213141516 设置规划器对不按顺序提取磁盘页的成本估计值。
seq_page_cost 111213141516 设置规划器对按顺序提取磁盘页的成本估计值。

查询优化/规划器方法配置

名称 版本 说明
enable_async_append 141516 允许规划器使用异步追加计划。
enable_bitmapscan 111213141516 允许规划器使用位图扫描计划。
enable_gathermerge 111213141516 允许规划器使用收集合并计划。
enable_hashagg 111213141516 允许规划器使用哈希聚合计划。
enable_hashjoin 111213141516 允许规划器使用哈希联接计划。
enable_incremental_sort 13141516 允许规划器使用增量排序步骤。
enable_indexonlyscan 111213141516 允许规划器使用仅限索引的扫描计划。
enable_indexscan 111213141516 允许规划器使用索引扫描计划。
enable_material 111213141516 允许规划器使用具体化。
enable_memoize 141516 允许规划器使用备忘录化。
enable_mergejoin 111213141516 允许规划器使用合并联接计划。
enable_nestloop 111213141516 允许规划器使用嵌套循环联接计划。
enable_parallel_append 111213141516 允许规划器使用并行追加计划。
enable_parallel_hash 111213141516 允许规划器使用并行哈希计划。
enable_partition_pruning 111213141516 启用计划时间和执行时分区修剪。
enable_partitionwise_aggregate 111213141516 允许或禁止查询规划器使用分区分组或聚合,这允许对每个分区单独执行的分区表进行分组或聚合。
enable_partitionwise_join 111213141516 允许或禁止查询规划器使用分区联接,这允许通过联接匹配分区来执行分区表之间的联接。
enable_seqscan 111213141516 允许规划器使用顺序扫描计划。
enable_sort 111213141516 允许规划器使用显式排序步骤。
enable_tidscan 111213141516 允许规划器使用 TID 扫描计划。

复制/主服务器

名称 版本 说明
synchronous_standby_names 111213141516 同步备用服务器数和潜在同步备用服务器的名称列表。

复制/主服务器

名称 版本 说明
synchronous_standby_names 111213141516 同步备用服务器数和潜在同步备用服务器的名称列表。
vacuum_defer_cleanup_age 1112131415 指定 VACUUM 和 HOT 更新将延迟死行版本的清理的事务数。

复制/发送服务器

名称 版本 说明
max_replication_slots 111213141516 指定服务器可支持的最大复制槽数。
max_slot_wal_keep_size 13141516 设置复制槽可以保留的最大 WAL 大小。
max_wal_senders 111213141516 设置同时运行的 WAL 发送方进程数量上限。
track_commit_timestamp 111213141516 收集事务提交时间。
wal_keep_segments 1112 设置为备用服务器保留的 WAL 文件数。
wal_keep_size 13141516 设置为备用服务器保留的 WAL 文件的大小。
wal_sender_timeout 111213141516 设置等待 WAL 复制的最长时间。

复制/备用服务器

名称 版本 说明
hot_standby 111213141516 允许在恢复期间连接和查询。
hot_standby_feedback 111213141516 启用/禁用关于热备用服务器是否需要向主或上游备用服务器发送有关当前在备用服务器上执行的查询的反馈的选项。
max_standby_archive_delay 111213141516 设置在取消热备用服务器处理存档的 WAL 数据时发生冲突的查询之前的最大延迟。
max_standby_streaming_delay 111213141516 设置在取消热备用服务器处理流式传输的 WAL 数据时发生冲突的查询之前的最大延迟。
primary_conninfo 1213141516 设置用于连接到发送服务器的连接字符串。
primary_slot_name 1213141516 设置要在发送服务器上使用的复制槽的名称。
promote_trigger_file 12131415 指定其状态将在备用节点中结束恢复的文件名。
recovery_min_apply_delay 1213141516 设置在恢复期间应用更改的最小延迟。
wal_receiver_create_temp_slot 13141516 设置在未配置永久槽时 WAL 接收器是否应创建临时复制槽。
wal_receiver_status_interval 111213141516 设置向主节点报告 WAL 接收器状态的最大时间间隔。
wal_receiver_timeout 111213141516 设置从发送服务器接收数据的最大等待时间。
wal_retrieve_retry_interval 111213141516 设置在尝试失败后重试以检索 WAL 之前等待的时间。

复制/订阅服务器

名称 版本 说明
max_logical_replication_workers 111213141516 指定逻辑复制辅助角色的最大数目。 这包括应用辅助角色和表同步辅助角色。
max_parallel_apply_workers_per_subscription 16 设置逻辑复制中每个订阅可以使用的最大并行应用辅助角色数。
max_sync_workers_per_subscription 111213141516 每个订阅的表同步辅助角色的最大数目。

报告和记录/要记录的内容

名称 版本 说明
application_name 111213141516 设置要在统计信息和日志中报告的应用程序名称。
debug_pretty_print 111213141516 缩进分析和计划树的显示内容。
debug_print_parse 111213141516 记录每个查询的分析树。
debug_print_plan 111213141516 记录每个查询的执行计划。
debug_print_rewritten 111213141516 记录每个查询的重写分析树。
log_autovacuum_min_duration 111213141516 设置最短执行时间,超过该时间将将记录 autovacuum 操作。
log_checkpoints 111213141516 记录每个检查点。
log_connections 111213141516 导致记录与服务器的每次连接尝试,以及成功完成的客户端身份验证。
log_disconnections 111213141516 记录会话结束时间,包括持续时间。
log_duration 111213141516 记录每个已完成 SQL 语句的持续时间。
log_error_verbosity 111213141516 控制服务器日志中为记录的每条消息写入的详细信息量。
log_hostname 111213141516 记录连接日志中的主机名。
log_line_prefix 111213141516 设置在每个日志行开头输出的 printf 样式字符串。
log_lock_waits 111213141516 控制当会话等待获取锁的时间超过 deadlock_timeout 时是否生成日志消息。
log_parameter_max_length 13141516 设置记录语句时为绑定参数值记录的数据的最大长度(以字节为单位)。
log_parameter_max_length_on_error 13141516 设置记录语句并发生错误时为绑定参数值记录的数据的最大长度(以字节为单位)。
log_recovery_conflict_waits 141516 控制启动进程等待恢复冲突的时间超过 deadlock_timeout 时是否生成日志消息。
log_replication_commands 111213141516 记录每个复制命令。
log_statement 111213141516 设置记录的语句的类型。
log_temp_files 111213141516 记录大于此 KB 数的临时文件的使用。
log_timezone 111213141516 设置在日志消息中使用的时区。

报告和记录/何时记录

名称 版本 说明
log_min_duration_sample 13141516 设置最短执行时间,超过该时间将将记录语句示例。 采样由 log_statement_sample_rate 确定。
log_min_duration_statement 111213141516 设置最短执行时间(以毫秒为单位),超过该时间将记录语句。 -1 禁用日志记录语句持续时间。
log_min_error_statement 111213141516 导致记录在此级别或更高级别生成错误的所有语句。
log_min_messages 111213141516 控制将哪些消息级别写入服务器日志。
log_startup_progress_interval 1516 长时间运行的启动操作的进度更新之间的时间。
log_statement_sample_rate 13141516 超过要记录的 log_min_duration_sample 的语句的占比。
log_transaction_sample_rate 1213141516 设置记录所有语句的事务的分数。

报告和记录/记录位置

名称 版本 说明
event_source 111213141516 设置用于标识事件日志中的 PostgreSQL 消息的应用程序名称。
log_destination 111213141516 设置服务器日志输出的目标。
log_directory 111213141516 设置日志文件的目标目录。
log_file_mode 111213141516 设置日志文件的文件权限。
log_filename 111213141516 设置日志文件的文件名模式。
logging_collector 111213141516 启动子进程,以将 stderr 输出和/或 csvlog 捕获到日志文件中。
log_rotation_age 111213141516 设置在强制日志文件轮换之前等待的时间量。
log_rotation_size 111213141516 设置日志文件在轮换之前可以达到的最大大小。
log_truncate_on_rotation 111213141516 在日志轮换期间截断同名的现有日志文件。
syslog_facility 111213141516 设置启用 syslog 时要使用的 syslog“设施”。
syslog_ident 111213141516 设置用于标识 syslog 中的 PostgreSQL 消息的程序名称。
syslog_sequence_numbers 111213141516 将序列号添加到 syslog 消息,以避免重复抑制。
syslog_split_messages 111213141516 按行拆分发送到 syslog 的消息,使其不超过 1024 字节。

资源使用情况/异步行为

名称 版本 说明
backend_flush_after 111213141516 在将以前执行的写入刷新到磁盘之前所要达到的页数。
effective_io_concurrency 111213141516 设置 PostgreSQL 预期能够同时执行的并发磁盘 I/O 操作的数量。
maintenance_io_concurrency 13141516 用于维护工作的 effective_io_concurrency 变体。
max_parallel_maintenance_workers 111213141516 设置每个维护操作的并行进程数量上限。
max_parallel_workers 111213141516 设置并行操作支持的辅助角色数量上限。
max_parallel_workers_per_gather 111213141516 设置每个执行程序节点的并行进程数量上限。
max_worker_processes 111213141516 设置系统可支持的后台进程数量上限。
parallel_leader_participation 111213141516 控制 Gather 和 Gather Merge 是否也运行子计划。

资源使用情况/后台编写器

名称 版本 说明
bgwriter_delay 111213141516 指定后台编写器的活动轮次之间的延迟。 在每一轮中,编写器会针对一些脏缓冲区发出写入操作。
bgwriter_flush_after 111213141516 在将后台编写器以前执行的写入刷新到磁盘之前所要达到的页数。
bgwriter_lru_maxpages 111213141516 在每一轮中,后台编写器将写入不超过此数量的缓冲区。
bgwriter_lru_multiplier 111213141516 将缓冲区的平均近期需求乘以 bgwriter_lru_multiplier,以得出下一轮期间将需要的缓冲区数量估计值。

资源使用情况/基于成本的清空延迟

名称 版本 说明
vacuum_cost_delay 111213141516 超出成本限制时清空进程将休眠的时间量(以毫秒为单位)。
vacuum_cost_limit 111213141516 导致清空进程休眠的累计成本。
vacuum_cost_page_dirty 111213141516 清空修改以前清除的块的估计成本。
vacuum_cost_page_hit 111213141516 清空共享缓冲区缓存中找到的缓冲区的估计成本。
vacuum_cost_page_miss 111213141516 清空必须从磁盘读取的缓冲区的估计成本。

资源使用情况/磁盘

名称 版本 说明
temp_file_limit 111213141516 限制每个进程使用的所有临时文件的总大小。

资源使用情况/内核资源

名称 版本 说明
max_files_per_process 111213141516 设置每个服务器进程同时打开的文件数量上限。

资源使用情况/内存

名称 版本 说明
autovacuum_work_mem 111213141516 设置每个 autovacuum 工作进程要使用的最大内存。
dynamic_shared_memory_type 111213141516 选择使用的动态共享内存实现。
hash_mem_multiplier 1213141516 要用于哈希表的多个 work_mem。
huge_pages 111213141516 允许/禁止使用大型内存页。 此设置不适用于少于 4 个 vCore 的服务器。
huge_page_size 141516 应请求的大型页的大小。
logical_decoding_work_mem 13141516 设置用于逻辑解码的最大内存。
maintenance_work_mem 111213141516 设置用于维护操作(如 VACUUM、“创建索引”)的最大内存。
max_prepared_transactions 111213141516 设置同时准备的事务数量上限。 运行副本服务器时,必须将此参数设置为与主服务器上的值相同或更高的值。
max_stack_depth 111213141516 设置最大堆栈深度(以 KB 为单位)。
min_dynamic_shared_memory 141516 启动时保留的动态共享内存量。
shared_buffers 111213141516 设置服务器使用的共享内存缓冲区数。 单位为 8kb。 允许的值在 10% - 75% 的可用内存范围内。
shared_memory_type 1213141516 选择用于主共享内存区域的共享内存实现。
temp_buffers 111213141516 设置每个数据库会话使用的临时缓冲区数量上限。
work_mem 111213141516 设置写入到临时磁盘文件之前内部排序操作和哈希表要使用的内存量。

统计信息/累积查询和索引统计信息

名称 版本 说明
stats_fetch_consistency 1516 设置对统计信息数据的访问的一致性。
track_activities 111213141516 收集有关对每个会话执行命令的信息。
track_activity_query_size 111213141516 设置为 pg_stat_activity.query 保留的内存量(以字节为单位)。
track_counts 111213141516 启用对数据库活动的统计信息收集
track_functions 111213141516 启用对函数调用计数和已使用时间的跟踪。
track_io_timing 111213141516 启用对数据库 I/O 调用的计时。
track_wal_io_timing 141516 收集 WAL I/O 活动的计时统计信息。

统计信息/监视

名称 版本 说明
compute_query_id 141516 启用查询标识符的核心计算。
log_executor_stats 111213141516 将执行程序性能统计信息写入服务器日志。
log_parser_stats 111213141516 将分析器性能统计信息写入服务器日志。
log_planner_stats 111213141516 将规划器性能统计信息写入服务器日志。
log_statement_stats 111213141516 对于每个查询,将累积性能统计信息写入服务器日志。

统计信息/查询和索引统计信息收集器

名称 版本 说明
stats_temp_directory 11121314 将临时统计信息文件写入指定目录。

版本和平台兼容性/其他平台和客户端

名称 版本 说明
transform_null_equals 111213141516 启用时,expr = NUL(或 NULL = expr)形式的表达式被视为 expr IS NULL,也就是说,如果 expr 的计算结果为 null 值,则返回 true;否则为 false。

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

名称 版本 说明
array_nulls 111213141516 允许将 NULL(不区分大小写)的输入视为 NULL 值,而不是文本字符串“NULL”。
backslash_quote 111213141516 设置字符串字面量中是否允许“\”。
escape_string_warning 111213141516 警告普通字符串字面量中存在反斜杠转义符。
lo_compat_privileges 111213141516 为针对大型对象的特权检查启用后向兼容性模式。
operator_precedence_warning 1112 针对自 PostgreSQL 9.4 以来其含义已发生更改的构造发出警告。
quote_all_identifiers 111213141516 生成 SQL 片段时将所有标识符括在引号中。
standard_conforming_strings 111213141516 导致“...”字符串以字面形式处理反斜杠。
synchronize_seqscans 111213141516 启用同步顺序扫描。

预写日志/存档恢复

名称 版本 说明
archive_cleanup_command 1213141516 设置将在每次重启时执行的 shell 命令。
recovery_end_command 1213141516 设置将在恢复结束时执行一次的 shell 命令。
restore_command 1213141516 设置将调用以检索已存档 WAL 文件的 shell 命令。

预写日志/存档

名称 版本 说明
archive_command 111213141516 设置将调用以存档 WAL 文件的 shell 命令。
archive_library 1516 设置将调用以存档 WAL 文件的库。
archive_mode 111213141516 允许使用 archive_command 存档 WAL 文件。
archive_timeout 111213141516 如果在 N 秒内尚未启动新文件,则强制切换到下一个 WAL 文件。

预写日志/检查点

名称 版本 说明
checkpoint_completion_target 111213141516 将检查点完成的目标(作为检查点之间的总时间的一小部分)。
checkpoint_flush_after 111213141516 在将以前执行的写入刷新到磁盘之前所要达到的页数。
checkpoint_timeout 111213141516 自动 WAL 检查点之间的最长时间(以秒为单位)。 有效范围为 30 秒到一天。
checkpoint_warning 111213141516 如果 WAL 段的填充频率高于此频率,则写入一条警告消息。
max_wal_size 111213141516 在触发自动检查点之前允许 WAL 增长的最大大小。
min_wal_size 111213141516 设置要将 WAL 收缩到的最小大小。

预写日志/恢复

名称 版本 说明
recovery_prefetch 1516 在恢复期间预提取引用的块。
wal_decode_buffer_size 1516 用于在恢复期间在 WAL 中提前读取的缓冲区大小。

预写日志/恢复目标

名称 版本 说明
recovery_target 1213141516 设置为“immediate”以便在达到一致状态后立即结束恢复。
recovery_target_action 1213141516 设置在达到恢复目标时要执行的操作。
recovery_target_inclusive 1213141516 设置是包含还是排除具有恢复目标的事务。
recovery_target_lsn 1213141516 设置将继续恢复的预写日志位置的 LSN。
recovery_target_name 1213141516 设置要继续恢复到的命名还原点。
recovery_target_time 1213141516 设置要继续恢复到的时间戳。
recovery_target_timeline 1213141516 指定要恢复到的时间线。
recovery_target_xid 1213141516 设置要继续恢复到的事务 ID。

预写日志/设置

名称 版本 说明
commit_delay 111213141516 设置提交事务与将 WAL 刷新到磁盘之间的延迟(以微秒为单位)。
commit_siblings 111213141516 设置执行 commit_delay 之前的最小并发打开事务数。
fsync 111213141516 强制同步对磁盘的更新。
full_page_writes 111213141516 在检查点后首次修改时,将完整页面写入 WAL。
synchronous_commit 111213141516 设置当前事务的同步级别。
wal_buffers 111213141516 设置 WAL 共享内存中的磁盘页缓冲区数。 单位为 8kb。
wal_compression 111213141516 压缩在 WAL 文件中编写的完整页面写入。
wal_init_zero 1213141516 首次使用之前,将零写入新 WAL 文件。
wal_level 111213141516 它确定写入 WAL 的信息量。
wal_log_hints 111213141516 在检查点后首次修改时,将完整页面写入 WAL,即使对于非关键修改也是如此。
wal_recycle 1213141516 通过重命名 WAL 文件来回收 WAL 文件。
wal_skip_threshold 13141516 要 fsync 而不是写入 WAL 的新文件的最小大小。
wal_sync_method 111213141516 选择用于强制 WAL 更新到磁盘的方法。
wal_writer_delay 111213141516 WAL 编写器执行的 WAL 刷新之间的时间间隔。
wal_writer_flush_after 111213141516 WAL 写入器写出的 WAL 数量,达到该数量将触发刷新。

后续步骤

若要了解受支持的 PostgreSQL 扩展,请参阅 Azure Database for PostgreSQL 灵活服务器中的 PostgreSQL 扩展