配置参数

配置参数

按字母顺序列出Greenplum数据库服务器配置参数的说明。

application_name

设置客户端会话的应用程序名称。 例如,如果通过psql连接,则将其设置为psql。 设置应用程序名称允许在日志消息和统计信息视图中报告。

取值范围 默认值 设置分类
string   master

session

reload

array_nulls

这可以控制数组输入解析器是否将未加引号的NULL识别为指定空数组元素。 默认情况下,此选项处于启用状态,允许输入包含空值的数组值。 3.0之前的Greenplum数据库版本不支持数组中的空值,因此将NULL视为指定字符串值为“NULL”的普通数组元素。

取值范围 默认值 设置分类
Boolean on master

session

reload

authentication_timeout

完成客户端认证的最大时间,这样可以防止挂起的客户端无限期占用连接。

取值范围 默认值 设置分类
任何有效的时间表达式 (数字和单位) 1分钟 local

system

restart

backslash_quote

这可以控制是否在字符串中可以用\'表示引号。 代表引号的首选SQL标准是用“” 表示,但是PostgreSQL历来也使用\'。 但是,使用\'会导致安全风险,因为在一些客户端字符集编码中,有很多多字节字符,其中最后一个字节等同于ASCII字符\。

取值范围 默认值 设置分类
on(总是允许 \')

off(总是拒绝)

safe_encoding(只有客户端编码不允许多字节中的ASCII字符\才允许)

safe_encoding master

session

reload

block_size

报告磁盘块大小。

取值范围 默认值 设置分类
字节数 32768 read only

bonjour_name

指定Bonjour广播名称。默认情况下,使用计算机名称,指定为空字符串。如果服务器未支持Bonjour服务,则忽略此选项。

取值范围 默认值 设置分类
string unset master

system

restart

check_function_bodies

设置为off时,在CREATE FUNCTION期间禁用函数体字符串的验证。 在从转储中恢复函数定义时,禁用验证有时可以避免诸如前向引用之类的问题。

取值范围 默认值 设置分类
Boolean on master

session

reload

client_encoding

设置客户端编码(字符集)。 默认是使用与数据库相同的编码。 请参阅PostgreSQL文档中的支持的字符集

取值范围 默认值 设置分类
字符集 UTF8 master

session

reload

client_min_messages

控制哪些消息级别发送到客户端。每个级别包括跟它随后的所有级别,越往后的级别,发送的消息就越少。

取值范围 默认值 设置分类
DEBUG5

DEBUG4

DEBUG3

DEBUG2

DEBUG1

LOG

NOTICE

WARNING

ERROR

FATAL

PANIC

NOTICE master

session

reload

cpu_index_tuple_cost

对于传统的查询优化器(planner),在索引扫描期间设置对处理每个索引行代价的估计。这是作为顺序页面提取代价的一部分来衡量的。

取值范围 默认值 设置分类
浮点数 0.005 master

session

reload

cpu_operator_cost

对于传统的查询优化器(planner),设置对处理WHERE语句中每个操作符代价的估计。这是作为顺序页面提取代价的一部分来衡量的。

取值范围 默认值 设置分类
浮点数 0.0025 master

session

reload

cpu_tuple_cost

对于传统的查询优化器(planner),设置对处理一个查询中每行(元组)代价的估计。这是作为顺序页面提取代价的一部分来衡量的。

取值范围 默认值 设置分类
浮点数 0.01 master

session

reload

cursor_tuple_fraction

告知传统查询优化器(planner)预期在游标查询中提取多少行,从而允许传统优化器使用此信息来优化查询计划。默认值为1表示获取所有行。

取值范围 默认值 设置分类
整数 1 master

session

reload

data_checksums

报告是否为数据库系统中的堆数据存储启用了校验和。 初始化数据库系统且无法更改时,将启用或禁用堆数据的校验和。

堆数据页存储堆表,目录表,索引和数据库元数据。 追加优化存储具有与此参数无关的内置校验和支持。

Greenplum数据库使用校验和来防止将文件系统中损坏的数据加载到由数据库进程管理的内存中。 启用堆数据校验和时,Greenplum Database会在堆数据页写入磁盘时计算并存储校验和。 从磁盘检索页面时,将验证校验和。 如果验证失败,则会生成错误,并且不允许将页面加载到托管内存中。

如果ignore_checksum_failure配置参数已设置为on,则校验和验证失败会生成警告,但允许将页面加载到托管内存中。 如果页面随后更新,则会刷新到磁盘并复制到镜像。 这可能导致数据损坏传播到镜像并阻止完全恢复。 由于可能会丢失数据,因此只应在需要恢复数据时启用ignore_checksum_failure参数。 有关更多信息,请参阅ignore_checksum_failure

取值范围 默认值 设置分类
Boolean on read only

DateStyle

设置日期和时间值的显示格式,以及解释模糊日期输入值的规则。该变量值包含两个独立的而部分:输出格式规范和输入输出规范中年月日的顺序。

取值范围 默认值 设置分类
<format>, <date style>

其中:

<format> 是ISO, Postgres, SQL或German

<date style> 是DMY, MDY或 YMD

ISO, MDY master

session

reload

db_user_namespace

这启用了每个数据库的用户名。 如果打开,用户应该以username@dbname创建用户。 要创建普通的全局用户,只需要在客户端指定用户名时附加@。

取值范围 默认值 设置分类
Boolean off local

system

restart

deadlock_timeout

在检查以查看是否存在死锁情况之前等待锁的时间。 在一个比较重的服务器上,用户可能希望提高此值。 理想的情况下,设置的值应该超过用户的典型处理时间,以此提高在等待线程在决定检查死锁之前自动解锁的几率。

取值范围 默认值 设置分类
任何有效时间的表达式(数字或者单位)。 1s local

system

restart

debug_assertions

打开各种断言检查。

取值范围 默认值 设置分类
Boolean off local

system

restart

debug_pretty_print

缩进调试输出产生更可读但是更长的输出格式。 client_min_messages 或者log_min_messages必须是DEBUG1或者更低。

取值范围 默认值 设置分类
Boolean on master

session

reload

debug_print_parse

对于每一个执行的查询,打印出结果分析树。 client_min_messageslog_min_messages必须是DEBUG1或者更低。

取值范围 默认值 设置分类
Boolean off master

session

reload

debug_print_plan

对于每个执行的查询,打印出Greenplum并行查询执行计划。 client_min_messageslog_min_messages必须是DEBUG1或者更低。

取值范围 默认值 设置分类
Boolean off master

session

reload

debug_print_prelim_plan

对于每个执行的查询,打印出初步查询计划。 client_min_messageslog_min_messages必须是DEBUG1或者更低。

取值范围 默认值 设置分类
Boolean off master

session

reload

debug_print_rewritten

对于每个执行的查询,打印出查询重写输出。 client_min_messageslog_min_messages必须是DEBUG1或者更低。

取值范围 默认值 设置分类
Boolean off master

session

reload

debug_print_slice_table

对于每个执行的查询,打印Greenplum查询分片计划。 client_min_messageslog_min_messages必须是DEBUG1或者更低。

取值范围 默认值 设置分类
Boolean off master

session

reload

default_statistics_target

通过ALTER TABLE SET STATISTICS设置未具有列特定目标集的表列的默认统计信息采样目标(存储在公共值列表中的值的数量)。 较大的值可能会提高Postgres查询优化器(规划器)估计的质量。

取值范围 默认值 设置分类
0 < 整数 < 10000 100 master

session

reload

default_tablespace

CREATE命令没有明确指定一个表空间,会在默认的表空间创建对象(表和索引)。

取值范围 默认值 设置分类
表空间的名字 unset master

session

reload

default_text_search_config

选择文本搜索功能的那些变体使用的文本搜索配置,这些变体没有指定配置的显式参数。 有关详细信息,请参阅使用全文搜索。 内置缺省值为pg_catalog.simple,但是如果可以识别与该语言环境匹配的配置,则initdb将使用与所选lc_ctype语言环境对应的设置初始化配置文件。

取值范围 默认值 设置分类
文本搜索配置的名称。 pg_catalog.simple master

session

reload

default_transaction_deferrable

Note: 只有只读和可串行化事务才可以被推迟。 Greenplum数据库不支持SERIALIZABLE事务隔离级别,因此将default_transaction_deferrable设置为on对Greenplum数据库没有影响。

在可序列化隔离级别运行时,可延迟的只读SQL事务可能会在允许继续之前被延迟。 但是,一旦它开始执行,它不会产生确保可串行化所需的任何开销; 因此,序列化代码没有理由强制它因并发更新而中止,所以此选项适用于长时间运行的只读事务。

此参数控制每个新事务的默认可延迟状态。 它目前对读写事务或低于可序列化的隔离级别的操作没有影响。 默认为关闭。

取值范围 默认值 设置分类
Boolean off master

session

reload

default_transaction_isolation

控制每个新事务的默认隔离级别。 Greenplum数据库将read uncommitted视为与read committed相同, 并将serializable视为与repeatable read相同。

取值范围 默认值 设置分类
read committed

read uncommitted

repeatable read

serializable

read committed master

session

reload

default_transaction_read_only

控制每个新事务的默认只读状态。只读的SQL事务 不能修改非临时表。

取值范围 默认值 设置分类
Boolean off master

session

reload

dynamic_library_path

如果需要打开动态加载的模块,并且在CREATE FUNCTIONLOAD命令中指定的文件名没有目录部分(即:目录不包括斜杠),系统会搜索该路径以获取所需的文件。 此时,PostgreSQL 内置编译的包库目录会替换 $libdir。 这是由标准PostgreSQL发行版提供的模块安装位置。

取值范围 默认值 设置分类
由冒号分隔的绝对目录路径列表 $libdir local

system

restart

effective_cache_size

设置有关Postgres查询优化器(计划程序)的单个查询可用的磁盘高速缓存的有效大小的假设。 这是用于估算使用指数的成本的因素; 较高的值使得更有可能使用索引扫描,较低的值使得更有可能使用顺序扫描。 此参数对Greenplum服务器实例分配的共享内存大小没有影响,也不保留内核磁盘缓存; 它仅用于估算目的。

将此参数设置为32K块的数量(例如,对于16MB,为512),或指定有效缓存的大小(例如,对于1024个块,为'32MB')。 gpconfig工具和SHOW命令以“MB”或“kB”为单位显示有效的高速缓存大小值。

取值范围 默认值 设置分类
浮点数 512 (16GB) master

session

reload

enable_bitmapscan

启用或禁用Postgres查询优化器(规划器)使用位图扫描计划类型。 请注意,这与位图索引扫描不同。 位图扫描意味着索引将在适当的时候在内存中动态转换为位图,从而在针对非常大的表的复杂查询上提供更快的索引性能。 当不同的索引列上有多个谓词时使用它。 可以比较每列的每个位图以创建所选元组的最终列表。

取值范围 默认值 设置分类
Boolean on master

session

reload

enable_groupagg

启用或禁用Postgres查询优化器(规划器)使用组聚合计划类型。

取值范围 默认值 设置分类
Boolean on master

session

reload

enable_hashagg

启用或禁用Postgres查询优化器(规划器)使用哈希聚合计划类型。

取值范围 默认值 设置分类
Boolean on master

session

reload

enable_hashjoin

启用或禁用Postgres查询优化器(规划器)使用哈希连接计划类型。

取值范围 默认值 设置分类
Boolean on master

session

reload

enable_indexscan

启用或禁用Postgres查询优化器(规划器)使用索引扫描计划类型。

取值范围 默认值 设置分类
Boolean on master

session

reload

enable_mergejoin

启用或禁用Postgres查询优化器(规划器)使用合并连接计划类型。 合并连接基于将左侧和右侧表按顺序排序然后并行扫描的想法。 因此,两种数据类型必须能够完全排序,并且连接运算符必须是只能成功处于排序顺序中“相同位置”的值对的连接运算符。 实际上,这意味着连接运算符必须表现得像相等一样。

取值范围 默认值 设置分类
Boolean off master

session

reload

enable_nestloop

启用或禁用Postgres查询优化器(规划器)使用嵌套循环连接计划。 不可能完全抑制嵌套循环连接,但如果有其他可用方法,则关闭此变量会阻止Postgres优化器使用它。

取值范围 默认值 设置分类
Boolean off master

session

reload

enable_seqscan

启用或禁用Postgres查询优化器(规划器)使用顺序扫描计划类型。 不可能完全抑制顺序扫描,但如果有其他方法可用,则关闭此变量会阻止Postgres优化器使用。

取值范围 默认值 设置分类
Boolean on master

session

reload

enable_sort

启用或禁用Postgres查询优化器(规划器)使用显式排序步骤。 完全禁止显式排序是不可能的,但如果有其他可用方法,则关闭此变量会阻止Postgres优化器使用。

取值范围 默认值 设置分类
Boolean on master

session

reload

enable_tidscan

启用或禁用Postgres查询优化器(规划器)使用元组标识符(TID)扫描计划类型。

取值范围 默认值 设置分类
Boolean on master

session

reload

escape_string_warning

打开的时候,如果在普通字符串文字(‘...’语法)中出现反斜杠(\),则会发出警告。转义字符语法(E'...')应用于转义,因为在将来的版本中,普通字符串将具有字面上处理反斜杠的符合SQL标准的行为。

取值范围 默认值 设置分类
Boolean on master

session

reload

explain_pretty_print

确定 EXPLAIN VERBOSE 是否使用缩进或非缩进格式显示详细的查询树信息。

取值范围 默认值 设置分类
Boolean on master

session

reload

extra_float_digits

调整浮点值显示的位数,包括float4,float8, 和几何数据类型。 将参数将加到数位上。 该值可以设置为高达2,包括部分有效位。这对于转储需要精确恢复的浮点数据尤其有用。 或者设置为负以摒弃不需要的位。

取值范围 默认值 设置分类
integer 0 master

session

reload

from_collapse_limit

Postgres查询优化器(规划器)将子查询合并到上层查询中,如果生成的FROM列表只有这么多项。 较小的值会减少计划时间,但可能会产生较差的查询计划。

取值范围 默认值 设置分类
1-n 20 master

session

reload

gp_adjust_selectivity_for_outerjoins

在外连接上启用NULL测试的选择性。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_appendonly_compaction

VACUUM命令期间启用压缩segment文件。 禁用时,VACUUM仅将segment文件截断为EOF值,当前行为也是如此。 管理员可能希望在高I/O负载情况或低空间情况下禁用压缩。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_appendonly_compaction_threshold

指定在没有FULL选项(惰性VACUUM)的情况下运行VACUUM时隐藏行与触发压缩segment文件的总行的阈值比率(百分比)。 如果segment上的segment文件中的隐藏行的比率小于此阈值,则不压缩段文件,并发出日志消息。

取值范围 默认值 设置分类
整数(%) 10 master

session

reload

gp_autostats_mode

指定使用ANALYZE触发自动统计信息收集的模式。 on_no_stats选项可以触发对任何没有统计信息的表上的CREATE TABLE AS SELECTINSERT,或COPY操作的统计信息收集。

当受影响的行数超过由gp_autostats_on_change_threshold定义的阀值时,on_change选项才会触发统计信息收集。 可以使用on_change触发自动统计信息收集的操作有:

CREATE TABLE AS SELECT

UPDATE

DELETE

INSERT

COPY

默认值是on_no_stats

Note: 对于分区表来说,如果从分区表的顶级父表插入数据,则不会触发自动统计信息收集。

如果数据直接插入到分区表的叶表(数据的存储位置)中,则触发自动统计信息收集。 统计数据仅在叶表上收集。

取值范围 默认值 设置分类
none

on_change

on_no_stats

on_no_ stats master

session

reload

gp_autostats_mode_in_functions

指定使用过程语言函数中的ANALYZE语句触发自动统计信息收集的模式。 none选项禁用统计信息收集。 on_no_stats选项在任何没有现有统计信息表上的函数中执行的CREATE TABLE AS SELECTINSERT,或COPY操作触发统计信息收集。

只有当受影响的行数超过由gp_autostats_on_change_threshold定义的阀值时,on_change选项才会触发统计信息收集。 可以使用on_change触发自动信息统计收集功能的操作有:

CREATE TABLE AS SELECT

UPDATE

DELETE

INSERT

COPY

取值范围 默认值 设置分类
none

on_change

on_no_stats

none master

session

reload

gp_autostats_on_change_threshold

gp_autostats_mode设定为on_change时,指明自动统计信息收集的阀值。 当触发表操作影响超过此阀值的行数时,将添加ANALYZE并收集表的统计信息。

取值范围 默认值 设置分类
整数 2147483647 master

session

reload

gp_cached_segworkers_threshold

当用户使用Greenplum数据库启动会话并发出查询时,系统会在每个segment上创建工作进程的组或“gangs”来完成工作。 完成工作后,除了由此参数设置的缓存数之外,将销毁段工作进程。 较低的设置可以节省段主机上的系统资源,但更高的设置可以提高想要连续发出许多复杂查询的高级用户的性能。

取值范围 默认值 设置分类
整数 > 0 5 master

session

reload

gp_command_count

显示主服务器从客户端收到的命令数。 请注意,单个SQL命令实际上可能在内部涉及多个命令,因此对于单个查询,计数器可能会增加多个。 该计数器也由处理该命令的所有segment进程共享。

取值范围 默认值 设置分类
整数 > 0 1 read only

gp_connection_send_timeout

在查询处理期间向无响应的Greenplum数据库用户客户端发送数据的超时。 值为0将禁用超时,Greenplum数据库将无限期地等待客户端。 达到超时后,将使用以下消息取消查询:
Could not send data to client: Connection timed out.
取值范围 默认值 设置分类
秒数 3600 (1小时) master

system

reload

gp_content

Segment的本地内容ID。

取值范围 默认值 设置分类
整数   read only

gp_create_table_random_default_distribution

使用不包含DISTRIBUTED BY子句的CREATE TABLECREATE TABLE AS创建Greenplum数据库表时,控制表的创建。

对于CREATE TABLE,如果参数的值为off(缺省值), 并且创建表命令不包含DISTRIBUTED BY子句,Greenplum数据库将根据以下命令选择表分布键:
  • 如果指定了LIKEINHERITS子句,则Greenplum将从源表或父表复制分布键。
  • 如果指定了PRIMARY KEYUNIQUE约束,则Greenplum会选择所有键列的最大子集作为分布键。
  • 如果既没有指定约束也没有指定LIKEINHERITS子句,则Greenplum选择第一个合适的列作为分布键。 (具有几何或用户定义数据类型的列不符合Greenplum分布键列的条件。)
如果参数的值设置为on,则当未指定DISTRIBUTED BY子句时,Greenplum数据库将遵循这些规则来创建表:
  • 如果未指定PRIMARY KEYUNIQUE列,则表的分布是随机的(DISTRIBUTED RANDOMLY)。 即使表创建命令包含LIKEINHERITS子句,表分发也是随机的。
  • 如果指定了PRIMARY KEYUNIQUE列,则还必须指定DISTRIBUTED BY子句。 如果未将DISTRIBUTED BY子句指定为表创建命令的一部分,则该命令将失败。
对于不包含分布子句的CREATE TABLE AS命令:
  • 如果Postgres查询优化器创建表,并且参数的值为off,则根据该命令确定表分发策略。
  • 如果Postgres查询优化器创建表,并且参数的值为on,则表分发策略是随机的。
  • 如果GPORCA创建表,则表分发策略是随机的。 参数值没有影响。

有关Postgres查询优化器和GPORCA的信息,请参阅Greenplum数据库管理员指南中的“查询数据”。

取值范围 默认值 设置分类
boolean off master

system

reload

gp_dbid

对于segment,则为本地dbid。

取值范围 默认值 设置分类
整数   read only

gp_debug_linger

在致命的内部错误之后,Greenplum进程保留的秒数。

取值范围 默认值 设置分类
任何有效的时间表达式(数字和单位) 0 master

session

reload

gp_default_storage_options

使用CREATE TABLE命令创建表时,设置以下表存储选项的默认值。
  • appendoptimized
    Note: 您可以使用appendoptimized=value语法指定追加优化的表存储类型。 appendoptimizedappendonly传统存储选项的精简别名。 Greenplum数据库在catalog中存储appendonly,并在列出追加优化表的存储选项时显示相同内容。
  • blocksize
  • checksum
  • compresstype
  • compresslevel
  • orientation

将多个存储选项值指定为逗号分隔列表。

您可以使用此参数设置存储选项,而不是在CREATE TABLE命令的WITH中指定表存储选项。 使用CREATE TABLE命令指定的表存储选项会覆盖此参数指定的值。

并非所有存储选项值组合都有效。 如果指定的存储选项无效,则返回错误。 有关表存储选项的信息,请参阅CREATE TABLE命令。

可以为数据库和用户设置默认值。 如果服务器配置参数设置在不同的级别,则当用户登录到数据库并创建表时,这是表存储值的优先顺序,从最高到最低:

  1. CREATE TABLE命令中使用WITH子句或ENCODING子句指定的值
  2. 使用ALTER ROLE...SET命令为用户设置的gp_default_storage_options的值
  3. 使用ALTER DATABASE...SET命令为数据库设置的gp_default_storage_options的值
  4. 使用gpconfig工具为Greenplum数据库系统设置的gp_default_storage_options的值

参数值不是累积的。 例如,如果参数指定数据库的appendoptimizedcompresstype选项并且用户登录并设置参数以指定orientation选项的值, 则忽略在数据库级别设置的appendoptimizedcompresstype值。

此示例ALTER DATABASE命令为数据库mytest设置默认orientationcompresstype表存储选项。
ALTER DATABASE mytest SET gp_default_storage_options = 'orientation=column, compresstype=rle_type'

使用面向列的表和RLE压缩在mytest数据库中创建追加优化的表。 用户需要在WITH子句中仅指定appendoptimized=TRUE

此示例gpconfig工具命令设置Greenplum数据库系统的默认存储选项。 如果为多个表存储选项设置默认值,则该值必须用单引号括起来。
gpconfig -c 'gp_default_storage_options' -v 'appendoptimized=true, orientation=column'
此示例gpconfig工具命令显示参数的值。 参数值必须在Greenplum数据库主数据库和所有segment之间保持一致。
gpconfig -s 'gp_default_storage_options'
取值范围 默认值 设置分类 1
appendoptimized= TRUE | FALSE

blocksize= integer between 8192 and 2097152

checksum= TRUE | FALSE

compresstype= ZLIB | ZSTD | QUICKLZ2 | RLE_TYPE | NONE

compresslevel= integer between 0 and 19

orientation= ROW | COLUMN

appendoptimized=FALSE

blocksize=32768

checksum=TRUE

compresstype=none

compresslevel=0

orientation=ROW

master

session

reload

Note: 1当参数使用gpconfig工具设置在系统级时,为集合分类。
Note: 2QuickLZ 压缩仅在Pivotal Greenplum数据库的商业版本中可用。

gp_dynamic_partition_pruning

启用可以动态消除分区扫描的计划。

取值范围 默认值 设置分类
on/off on master

session

reload

gp_enable_adaptive_nestloop

允许在Postgres查询优化器(规划器)的查询执行时使用称为“Adaptive Nestloop”的新类型的连接节点。 如果连接外侧的行数超过预先计算的阈值,这会导致Postgres优化器相比嵌套循环连接更偏爱哈希连接。 此参数提高了索引操作的性能,这些操作以前支持较慢的嵌套循环连接。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_enable_agg_distinct

启用或禁用两阶段聚合以计算单个不同限定的聚合。 这仅适用于包含单个不同限定聚合函数的子查询。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_enable_agg_distinct_pruning

启用或禁用三阶段聚合和连接以计算不同限定的聚合。 这仅适用于包含一个或多个不同限定聚合函数的子查询。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_enable_direct_dispatch

启用或禁用为访问单个segment上的数据的查询调度目标查询计划。 启用时,单个segment上的目标行的查询将仅将其查询计划分派到该segment(而不是所有segment)。 这明显缩短了限定查询的响应时间,因为没有涉及互连设置。 直接分发确实需要主服务器上更多的CPU利用率。

取值范围 默认值 设置分类
Boolean on master

system

restart

gp_enable_exchange_default_partition

控制ALTER TABLEEXCHANGE DEFAULT PARTITION子句的可用性。 参数的默认值为off。 如果在ALTER TABLE命令中指定了该子句,该子句不可用,Greenplum数据库将返回错误。

如果该值为on,则Greenplum数据库会返回一条警告,指出由于默认分区中的数据无效,交换默认分区可能会导致错误的结果。

Warning: 在交换默认分区之前,必须确保要交换的表中的数据(新的默认分区)对默认分区有效。 例如,新默认分区中的数据不得包含在分区表的其他叶子分区中有效的数据。 否则,使用GPORCA执行的交换的默认分区对分区表的查询可能会返回不正确的结果。
取值范围 默认值 设置分类
Boolean off master

session

reload

gp_enable_fast_sri

当设置为on时,Postgres查询优化器(planner)计划单行插入,以便将它们直接发送到正确的segment实例(无需motion操作)。 这显着提高了单行插入语句的性能。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_enable_global_deadlock_detector

控制是否启用Greenplum数据库全局死锁检测器来管理堆表上的并发UPDATEDELETE操作以提高性能。 见全局死锁检测。 默认为off,全局死锁检测被禁用。

如果禁用全局死锁检测器(默认),Greenplum数据库将串行地对堆表执行并发更新和删除操作。

如果启用了全局死锁检测器,则允许并发更新,并且全局死锁检测器确定何时存在死锁,并通过终止与所涉及的最新事务关联的一个或多个后端进程来中断死锁。

取值范围 默认值 设置分类
Boolean off master

system

restart

gp_enable_gpperfmon

启用或禁用为Greenplum Command Center填充gpperfmon数据库的数据收集代理。

取值范围 默认值 设置分类
Boolean off local

system

restart

gp_enable_groupext_distinct_gather

启用或禁用将数据收集到单个节点以计算分组扩展查询的不同限定聚合。 当此参数和gp_enable_groupext_distinct_pruning都启用时,Postgres查询优化器(规划器)使用成本更低的计划。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_enable_groupext_distinct_pruning

启用或禁用三阶段聚合和联接以计算分组扩展查询的不同限定聚合。 通常,启用此参数会生成代价更小的查询计划,Postgres查询优化程序(优化器)将优先使用现有计划。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_enable_multiphase_agg

启用或禁用使用两阶段或三阶段并行聚合计划Postgres查询优化器(planner)。 此方法适用于具有聚合的任何子查询。 如果gp_enable_multiphase_agg关闭,则禁用gp_enable_agg_distinctgp_enable_agg_distinct_pruning

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_enable_predicate_propagation

启用后,Postgres查询优化器(planner)会在表格在其分布键列上连接的情况下将查询谓词应用于两个表表达式。 在进行连接之前过滤两个表(如果可能)更有效。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_enable_preunique

SELECT DISTINCT查询启用两阶段重复删除(不是SELECT COUNT(DISTINCT))。 启用后,它会在移动之前添加一组额外的SORT DISTINCT计划节点。 在不同操作大大减少行数的情况下,这个额外的SORT DISTINCT比通过互连发送行的成本代价低得多。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_enable_query_metrics

启用查询指标的收集。 启用查询指标收集后,Greenplum数据库会在查询执行期间收集指标。 默认为关闭。

更改此配置参数后,必须重新启动Greenplum数据库才能使更改生效。

Greenplum数据库指标收集扩展在启用时,会将收集的指标通过UDP发送到Pivotal Greenplum Command Center代理1

Note: 1指标收集扩展包含在Pivotal的Greenplum数据库的商业版本中。 Pivotal Greenplum Command Center仅支持Pivotal Greenplum数据库。
取值范围 默认值 设置分类
Boolean off master

system

restart

gp_enable_relsize_collection

如果表没有统计信息,则允许GPORCA和Postgres查询优化器(planner)使用表的估计大小(pg_relation_size函数)。 默认情况下,如果统计信息不可用,GPORCA和计划程序将使用默认值来估计行数。 默认行为可以改善查询优化时间并减少繁重工作负载中的资源队列使用,但可能导致计划不理想。

对于分区表的根分区,将忽略此参数。 启用GPORCA且根分区没有统计信息时,GPORCA始终使用默认值。 您可以使用ANALZYE ROOTPARTITION收集根分区的统计信息。 请参见ANALYZE

取值范围 默认值 设置分类
Boolean off master

session

reload

gp_enable_segment_copy_checking

控制在使用COPY FROM...ON SEGMENT命令将数据复制到表中时是否检查表的分发策略(来自表DISTRIBUTED子句)。 如果为true,则如果一行数据违反了segment实例的分发策略,则会返回错误。 默认值为true

如果值为false,则不检查分发策略。 添加到表中的数据可能违反了segment实例的表分发策略。 可能需要手动重新分配表数据。 请参阅ALTER TABLE子句WITH REORGANIZE

The parameter can be set for a database system or a session. The parameter cannot be set for a specific database.

取值范围 默认值 设置分类
Boolean true master

session

reload

gp_enable_sort_distinct

在排序时启用删除重复项。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_enable_sort_limit

在排序时启用LIMIT操作。 当计划最多需要第一行limit_number时,排序更有效。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_external_enable_exec

启用或禁用在segment主机上执行OS命令或脚本的外部表的使用(CREATE EXTERNAL TABLE EXECUTE语法)。 如果使用Command Center或MapReduce功能,则必须启用

取值范围 默认值 设置分类
Boolean on master

system

restart

gp_external_max_segs

设置在外部表操作期间扫描外部表数据的segment数量,目的是使系统不要超载扫描数据并从其他并发操作中夺走资源。 这仅适用于使用gpfdist://协议访问外部表数据的外部表。

取值范围 默认值 设置分类
integer 64 master

session

reload

gp_external_enable_filter_pushdown

从外部表读取数据时启用过滤器下推。 如果下推失败,则执行查询而不将过滤器推送到外部数据源(相反,Greenplum数据库会对结果应用相同的约束)。 有关更多信息,请参见定义外部表

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_fts_probe_interval

指定故障检测过程的轮询间隔(ftsprobe)。 ftsprobe过程将花费大约这段时间来检测段故障。

取值范围 默认值 设置分类
10 - 3600秒 1分钟 master

system

restart

gp_fts_probe_retries

指定在报告segment故障之前故障检测过程(ftsprobe)尝试连接到segment的次数。

取值范围 默认值 设置分类
integer 5 master

system

restart

gp_fts_probe_threadcount

指定要创建的ftsprobe线程数。 此参数应设置为等于或大于每个主机的segment数量的值。

取值范围 默认值 设置分类
1 - 128 16 master

system

restart

gp_fts_probe_timeout

指定故障检测过程(ftsprobe)允许的超时,以在声明它之前建立与segment的连接。

取值范围 默认值 设置分类
10 - 3600秒 20秒 master

system

restart

gp_global_deadlock_detector_period

指定全局死锁检测器后端进程的执行间隔(以秒为单位)。

取值范围 默认值 设置分类
5 - INT_MAX 120秒 master

system

reload

gp_log_fts

控制故障检测过程(ftsprobe)写入日志文件的详细信息量。

取值范围 默认值 设置分类
OFF

TERSE

VERBOSE

DEBUG

TERSE master

system

restart

gp_log_interconnect

控制写入日志文件的有关Greenplum数据库segment实例工作进程之间通信的信息量。 默认值为terse。 日志信息将写入master实例日志和segment实例日志。

增加日志记录量可能会影响性能并增加磁盘空间使用量。

取值范围 默认值 设置分类

off

terse

verbose

debug

terse master

session

reload

gp_log_gang

控制写入日志文件的有关查询工作进程创建和查询管理的信息量。 默认值为OFF,不记录信息。

取值范围 默认值 设置分类
OFF

TERSE

VERBOSE

DEBUG

OFF master

session

restart

gp_gpperfmon_send_interval

设置Greenplum数据库服务器将查询执行更新发送到用于为Command Center填充gpperfmon数据库的数据收集代理的频率。 在此间隔期间执行的查询操作通过UDP发送到segment监视器代理。 如果在长时间运行的复杂查询期间发现丢弃了过多的UDP数据包,则可以考虑增加此值。

取值范围 默认值 设置分类
任何有效的时间表达式(数量和单位) 1sec master

system

restart

gpperfmon_log_alert_level

控制将哪些消息级别写入gpperfmon日志。 每个级别包括其后的所有级别。 级别越靠后,发送到日志的消息越少。

Note: 如果安装了gpperfmon数据库并且正在监视数据库,则默认值为warning。
取值范围 默认值 设置分类
none

warning

error

fatal

panic

none local

system

restart

gp_hashjoin_tuples_per_bucket

设置HashJoin操作使用的哈希表的目标密度。 较小的值往往会产生较大的哈希表,这可以提高连接性能。

取值范围 默认值 设置分类
integer 5 master

session

reload

gp_ignore_error_table (不推荐使用)

CREATE EXTERNAL TABLECOPY命令中指定不推荐使用的INTO ERROR TABLE子句时,控制Greenplum数据库行为。

默认值为false,如果在命令中指定了INTO ERROR TABLE子句,Greenplum数据库将返回错误。

如果值为true,则Greenplum数据库会忽略该子句,发出警告,并在没有INTO ERROR TABLE子句的情况下执行该命令。 在Greenplum数据库5.x及更高版本中,您可以使用内置SQL函数访问错误日志信息。 请参见 CREATE EXTERNAL TABLECOPY命令。

您可以将此值设置为true, 以避免在运行包含Greenplum数据库4.3.x INTO ERROR TABLE子句的CREATE EXTERNAL TABLECOPY命令的应用程序时出现Greenplum数据库错误。

在Greenplum数据库5中不推荐使用INTO ERROR TABLE子句并将其删除。 在Greenplum数据库7中,此参数也将被删除,导致所有INTO ERROR TABLE调用产生语法错误。

取值范围 默认值 设置分类
Boolean false master

session

reload

gp_initial_bad_row_limit

对于参数值n,Greenplum数据库在使用COPY命令或从外部表导入数据时,如果处理的前n行包含格式错误,则停止处理输入行。 如果在前n行中处理有效行,则Greenplum数据库继续处理输入行。

将值设置为0将禁用此限制。

还可以为COPY命令或外部表定义指定SEGMENT REJECT LIMIT子句,以限制被拒绝的行数。

INT_MAX是可以作为整数存储在系统中的最大值。

取值范围 默认值 设置分类
整数 0 - INT_MAX 1000 master

session

reload

gp_instrument_shmem_size

为查询指标分配的共享内存量(以KB为单位)。 默认值为5120,最大值为131072。 启动时,如果gp_enable_query_metrics设置为on,则Greenplum数据库会在共享内存中分配空间以保存查询指标。 该内存被组织为标题和插槽列表。 所需的插槽数取决于并发查询的数量和每个查询的执行计划节点的数量。 默认值5120基于Greenplum数据库系统,该系统最多执行约250个并发查询,每个查询120个节点。 如果gp_enable_query_metrics配置参数关闭,或者插槽耗尽,则指标将保留在本地内存中而不是共享内存中。

取值范围 默认值 设置分类
整数0 - 131072 5120 master

system

restart

gp_interconnect_debug_retry_interval

指定在服务器配置参数gp_log_interconnect设置为DEBUG时记录Greenplum数据库interconnect调试消息的时间间隔(以秒为单位)。 默认值为10秒。

日志消息包含有关Greenplum数据库segment实例工作进程之间的interconnect通信的信息。 调试segment实例之间的网络问题时,这些信息可能会有所帮助。

取值范围 默认值 设置分类
1 =< 整数 < 4096 10 master

session

reload

gp_interconnect_fc_method

指定用于默认Greenplum数据库UDPIFC interconnect的流控制方法。

对于基于容量的流量控制,当接收器没有容量时,发送器不发送数据包。

基于损耗的流量控制基于基于容量的流量控制,并且还根据包丢失来调整发送速度。

取值范围 默认值 设置分类
CAPACITY

LOSS

LOSS master

session

reload

gp_interconnect_hash_multiplier

设置Greenplum数据库用于跟踪与默认UDPIFC interconnect的连接的哈希表的大小。 此数字乘以segment数以确定哈希表中的桶数。 增加该值可能会增加复杂多切片查询的interconnect性能(同时在segment主机上消耗更多内存)。

取值范围 默认值 设置分类
2-25 2 master

session

reload

gp_interconnect_queue_depth

设置接收器上的排队的Greenplum数据库每方用于默认UDPIFC的interconnect数据量(当接收到数据但没有可用于接收数据的空间时,数据将被丢弃,并且发送器将需要重新发送它)。 将深度从其默认值增加将导致系统使用更多内存,但可能会提高性能。 将此值设置在1到10之间是合理的。 具有数据倾斜的查询可能会随着队列深度的增加而更好地执行。 增加这可能会从根本上增加系统使用的内存量。

取值范围 默认值 设置分类
1-2048 4 master

session

reload

gp_interconnect_setup_timeout

指定在超时之前等待Greenplum数据库interconnect完成设置的时间。

取值范围 默认值 设置分类
任何有效的时间表达式(数量和单位) 2 hours master

session

reload

gp_interconnect_snd_queue_depth

设置发件人上默认UDPIFC interconnect排队的每方的数据量。 将深度从其默认值增加将导致系统使用更多内存,但可能会提高性能。 此参数的合理值介于1和4之间。 增加该值可能会从根本上增加系统使用的内存量。

取值范围 默认值 设置分类
1 - 4096 2 master

session

reload

gp_interconnect_type

设置用于Greenplum数据库interconnect流量的网络协议。 UDPIFC指定使用UDP和流量控制来实现interconnect流量,并且是唯一支持的值。

UDPIFC(默认值)指定使用UDP和流量控制来实现interconnect流量。 使用gp_interconnect_fc_method指定interconnect流控制方法。

使用TCP作为interconnect协议,Greenplum数据库的上限为1000个segment实例 - 如果查询工作负载涉及复杂的多切片查询时,上限小于该值。

取值范围 默认值 设置分类
UDPIFC

TCP

UDPIFC local

system

restart

gp_log_format

指定服务器日志文件的格式。 如果使用gp_toolkit管理模式,则日志文件必须为CSV格式。

取值范围 默认值 设置分类
csv

text

csv local

system

restart

gp_max_local_distributed_cache

设置要在segment实例的后端进程内存中缓存的最大分布式事务日志条目数。

日志条目包含有关SQL语句正在访问的行的状态的信息。 该信息用于确定在MVCC环境中多个SQL语句同时执行时SQL事务可见的行。 通过提高行可见性确定过程的性能,本地缓存分布式事务日志条目可提高事务处理速度。

默认值适用于各种SQL处理环境。

取值范围 默认值 设置分类
整数 1024 local

system

restart

gp_max_packet_size

设置Greenplum数据库interconnect的元组序列化块大小。

取值范围 默认值 设置分类
512-65536 8192 master

system

restart

gp_max_plan_size

指定查询执行计划的最大未压缩总大小乘以计划中的Motion运算符(切片)数。 如果查询计划的大小超过该值,则取消查询并返回错误。 值为0表示不监视计划的大小。

您可以指定以kBMBGB为单位的值。 默认单位是kB。 例如,值200是200kB。 值1GB1024MB1048576kB相同。

取值范围 默认值 设置分类
整数 0 master

superuser

session

gp_max_slices

指定可以由查询生成的最大切片数(在segment实例上执行的查询计划的部分)。 如果查询生成的切片数超过指定数量,则Greenplum数据库将返回错误并且不执行查询。 默认值为0,没有最大值。

执行生成大量切片的查询可能会影响Greenplum数据库性能。 例如,在多个复杂视图上包含UNIONUNION ALL运算符的查询可以生成大量切片。 您可以在查询上运行EXPLAIN ANALYZE以查看查询的切片统计信息。

取值范围 默认值 设置分类
0 - INT_MAX 0 master

session

reload

gp_motion_cost_per_row

设置Motion运算符的Postgres查询优化器(planner)成本估算, 以将行从一个segment传输到另一个segment,以连续页面提取的成本的小数部分来衡量。 如果为0,则使用的值是cpu_tuple_cost值的两倍。

取值范围 默认值 设置分类
浮点数 0 master

session

reload

gp_recursive_cte

控制SELECT [INTO]命令的WITH子句或DELETEINSERTUPDATE命令中RECURSIVE关键字的可用性。 该关键字允许命令的WITH子句中的子查询引用自身。 默认值为false,命令的WITH子句中不允许使用RECURSIVE关键字。

有关RECURSIVE关键字(Beta)的信息, 请参阅SELECT命令和WITH查询(公用表表达式)

可以为数据库系统,单个数据库或会话或查询设置该参数。

Note: 此参数之前名为gp_recursive_cte_prototype,但已重命名以反映实现的当前状态。
取值范围 默认值 设置分类
Boolean true master

session

restart

gp_reject_percent_threshold

对于COPY和外部表SELECT上的单行错误处理,设置在SEGMENT REJECT LIMIT n PERCENT开始计算之前处理的行数。

取值范围 默认值 设置分类
1-n 300 master

session

reload

gp_reraise_signal

如果启用,将在发生致命服务器错误时尝试生成core文件。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_resgroup_memory_policy

Note: 仅当资源管理设置为资源组时,gp_resgroup_memory_policy服务器配置参数才会生效。

由资源组用于管理查询运算符的内存分配。

设置为auto时,Greenplum数据库使用资源组内存限制在查询运算符之间分配内存,为非内存密集型运算符分配固定大小的内存,其余内存为内存密集型运算符。

当您指定eager_free时,Greenplum数据库通过将已完成处理的运算符释放的内存重新分配给稍后查询阶段的运算符,从而更好地在运算符之间分配内存。

取值范围 默认值 设置分类
auto, eager_free eager_free local

system

superuser

restart/reload

gp_resource_group_bypass

Note: 仅当资源管理设置为资源组时,gp_resource_group_bypass服务器配置参数才会生效。

启用或禁用对Greenplum数据库资源的资源组并发事务限制的实施。 默认值为false,这会强制执行资源组事务限制。 资源组管理资源,例如CPU,内存以及查询和外部组件(如PL / Container)使用的并发事务数。

您可以将此参数设置为true以绕过资源组并发事务限制,以便查询可以立即运行。 例如,您可以将参数设置为true,以便会话运行系统目录查询或需要最少量资源的类似查询。

将此参数设置为true并运行查询时,查询将在此环境中运行:
  • 查询在资源组内运行。查询的资源组分配不会更改。
  • 查询内存配额大约为每个查询10 MB。 内存从资源组共享内存或全局共享内存中分配。 如果没有足够的共享内存可用于满足内存分配请求,则查询将失败。

可以为会话设置此参数。无法在事务或函数中设置该参数。

取值范围 默认值 设置分类
Boolean false session

gp_resource_group_cpu_limit

Note: 仅当资源管理设置为资源组时,gp_resource_group_cpu_limit服务器配置参数才会生效。

标识要分配给每个Greenplum数据库segment节点上的资源组的系统CPU资源的最大百分比。

取值范围 默认值 设置分类
0.1 - 1.0 0.9 local

system

restart

gp_resource_group_memory_limit

Note: 仅当资源管理设置为资源组时,gp_resource_group_memory_limit服务器配置参数才会生效。

标识要分配给每个Greenplum数据库segment节点上的资源组的系统内存资源的最大百分比。

取值范围 默认值 设置分类
0.1 - 1.0 0.7 local

system

restart

Note: 当基于资源组的资源管理处于活动状态时,分配给segment主机的内存将由活动primary segment平均共享。 当segment为primary时,Greenplum数据库会将内存分配给primary segment。 即使在故障转移情况下,primary segment的初始内存分配也不会更改。 这可能导致segment主机使用比gp_resource_group_memory_limit设置允许的更多内存。

例如,假设您的Greenplum数据库群集使用默认的gp_resource_group_memory_limit0.7, 而名为seghost1的segment主机有4个primary和4个mirror。 Greenplum数据库在seghost1上为每个primary segment分配整个系统内存的(0.7 / 4 = 0.175%)。 如果发生故障转移并且seghost1上的两个mirror故障转移成为primary, 则原始4个primary中的每一个保留其0.175的存储器分配, 并且两个新的primary segment分别被分配系统内存的(0.7 / 6 = 0.116%)seghost1在这种情况下的总体内存分配是

0.7 + (0.116 * 2) = 0.932%

它高于gp_resource_group_memory_limit设置中配置的百分比。

gp_resource_manager

标识当前在Greenplum数据库群集中启用的资源管理方案。 默认方案是使用资源队列。

取值范围 默认值 设置分类
group

queue

queue local

system

restart

gp_resqueue_memory_policy

Note: 仅当资源管理设置为资源队列时,gp_resqueue_memory_policy服务器配置参数才会生效。

启用Greenplum内存管理功能。 分配算法eager_free利用了并非所有运算符同时执行的事实(在Greenplum Database 4.2及更高版本中)。 查询计划分为几个阶段,Greenplum数据库急切地释放在该阶段执行结束时分配给前一阶段的内存, 然后将急切释放的内存分配给新阶段。

When set to none, memory management is the same as in Greenplum Database releases prior to 4.1.

When set to auto, query memory usage is controlled by statement_mem and resource queue memory limits.

取值范围 默认值 设置分类
none, auto, eager_free eager_free local

system

restart/reload

gp_resqueue_priority

Note: 仅当资源管理设置为资源队列时,gp_resqueue_priority服务器配置参数才会生效。

启用或禁用查询优先级。 禁用此参数时,不会在查询运行时计算现有优先级设置。

取值范围 默认值 设置分类
Boolean on local

system

restart

gp_resqueue_priority_cpucores_per_segment

Note: 仅当资源管理设置为资源队列时,gp_resqueue_priority_cpucores_per_segment服务器配置参数才会生效。

指定每个segment实例分配的CPU单元数。 例如,如果Greenplum数据库群集具有配置有四个segment的10核心segment主机,请将segment实例的值设置为2.5。 对于master实例,值为10。 master主机通常只运行master实例,因此主机的值应反映所有可用CPU内核的使用情况。

设置不正确可能导致CPU使用率不足或查询优先级不按设计工作。

Greenplum数据计算设备V2的默认值为segment 4,master 25。

取值范围 默认值 设置分类
0.1 - 512.0 4 local

system

restart

gp_resqueue_priority_sweeper_interval

Note: 仅当资源管理设置为资源队列时,gp_resqueue_priority_sweeper_interval服务器配置参数才会生效。

指定清理程序进程评估当前CPU使用率的时间间隔。 当新语句变为活动状态时,将评估其优先级,并在达到下一个间隔时确定其CPU份额。

取值范围 默认值 设置分类
500 - 15000毫秒 1000 local

system

restart

gp_role

此服务器进程的角色。master设置为dispatch,segment设置为execute

取值范围 默认值 设置分类
dispatch

execute

utility

  read only

gp_safefswritesize

指定在非成熟文件系统中对追加优化表进行安全写入操作的最小尺寸。 当指定大于零的字节数时,追加优化的写入器将填充数据添加到该数字,以防止由于文件系统错误导致的数据损坏。 每个非成熟文件系统都具有已知的安全写入大小,在使用具有该类型文件系统的Greenplum数据库时必须在此处指定。 这通常设置为文件系统的范围大小的倍数; 例如,Linux ext3是4096字节,因此通常使用值32768。

取值范围 默认值 设置分类
整数 0 local

system

restart

gp_segment_connect_timeout

Greenplum interconnect将尝试通过网络连接到segment实例的超时时间。 控制master和primary之间的网络连接超时,以及primary到mirror复制过程的网络连接超时。

取值范围 默认值 设置分类
任何有效的时间表达式(数量和单位) 10分钟 local

system

reload

gp_segments_for_planner

设置Postgres查询优化器(planner)在其成本和大小估计中假设的primary实例数。 如果为0,则使用的值是primary的实际数量。 此变量影响Postgres优化器对Motion运算符中每个发送和接收过程处理的行数的估计。

取值范围 默认值 设置分类
0-n 0 master

session

reload

gp_server_version

以字符串形式报告服务器的版本号。 版本修饰符参数可能会附加到版本字符串的数字部分,例如:5.0.0 beta

取值范围 默认值 设置分类
字符串。示例:5.0.0 n/a read only

gp_server_version_num

以整数形式报告服务器的版本号。 对于每个版本,该数字始终保持增加,并可用于数字比较。 主要版本按原样表示,次要版本和补丁版本为零填充,始终为两位数宽。

取值范围 默认值 设置分类
Mmmpp,其中M是主要版本,mm是零填充的次要版本,pp是零填充的补丁版本。 示例:50000 n/a read only

gp_session_id

系统为客户端会话分配的ID号。 首次启动master实例时从1开始计数。

取值范围 默认值 设置分类
1-n 14 read only

gp_set_proc_affinity

如果启用,当启动Greenplum服务器进程(postmaster)时,它将绑定到一个CPU。

取值范围 默认值 设置分类
Boolean off master

system

restart

gp_set_read_only

设置为on以禁用对数据库的写入。 任何正在进行的事务必须在只读模式生效之前完成。

取值范围 默认值 设置分类
Boolean off master

system

restart

gp_statistics_pullup_from_child_partition

在Postgres查询优化器(planner)规划父表的查询时,允许使用子表中的统计信息。

取值范围 默认值 设置分类
Boolean on master

session

reload

gp_statistics_use_fkeys

启用后,允许Postgres查询优化器(planner)使用存储在系统目录中的外键信息来优化外键和主键之间的连接。

取值范围 默认值 设置分类
Boolean off master

session

reload

gp_use_legacy_hashops

对于使用DISTRIBUTED BY key_column子句定义的表,此参数控制用于在segment实例之间分发表数据的哈希算法。 默认值为false,使用跳转一致性哈希算法。

将值设置为true使用与Greenplum数据库5.x和早期版本兼容的取模哈希算法。

取值范围 默认值 设置分类
Boolean false master

session

reload

gp_vmem_idle_resource_timeout

如果数据库会话空闲的时间超过指定的时间,则会话将释放系统资源(例如共享内存),但仍保持与数据库的连接。 这允许一次更多并发连接到数据库。

取值范围 默认值 设置分类
任何有效的时间表达式(数量和单位) 18s master

system

reload

gp_vmem_protect_limit

Note: 仅当资源管理设置为资源队列时,gp_vmem_protect_limit服务器配置参数才会生效。

设置活动segment实例的所有postgres进程可以使用的内存量(以MB为单位)。 如果查询导致超出此限制,则不会分配内存,查询将失败。 请注意,这是一个本地参数,必须为系统中的每个segment(primary和mirror)设置。 设置参数值时,仅指定数值。 例如,要指定4096MB,请使用值4096.不要将单位MB添加到该值。

为了防止内存过度分配,这些计算可以估计安全的gp_vmem_protect_limit值。

首先计算值gp_vmem。 这是主机上可用的Greenplum数据库内存
gp_vmem = ((SWAP + RAM) – (7.5GB + 0.05 * RAM)) / 1.7

其中SWAP是主机交换空间,RAM是主机上的RAM,以GB为单位。

接下来,计算max_acting_primary_segments。 这是由于故障而激活mirror时主机上可以运行的primary的最大数量。 例如,如果mirror布置在4个主机块中,每个主机有8个primary,则单个segment主机故障将激活故障主机块中每个剩余主机上的两个或三个mirror。 此配置的max_acting_primary_segments值为11(8个primary加上3个失败时激活的mirror)。

这是gp_vmem_protect_limit的计算。 该值应转换为MB。

gp_vmem_protect_limit = gp_vmem / acting_primary_segments

对于生成大量工作文件的情况,这是计算工作文件的gp_vmem的计算。

gp_vmem = ((SWAP + RAM) – (7.5GB + 0.05 * RAM - (300KB * total_#_workfiles))) / 1.7

有关监视和管理工作文件使用情况的信息,请参阅Greenplum数据库管理员指南

根据gp_vmem值,您可以计算vm.overcommit_ratio操作系统内核参数的值。 配置每个Greenplum数据库主机时,将设置此参数。
vm.overcommit_ratio = (RAM - (0.026 * gp_vmem)) / RAM
Note: Red Hat Enterprise Linux中内核参数vm.overcommit_ratio的默认值为50。

有关内核参数的信息,请参阅Greenplum数据库安装指南

取值范围 默认值 设置分类
整数 8192 local

system

restart

gp_vmem_protect_segworker_cache_limit

如果查询执行程序进程消耗的数量超过此配置的数量,则在进程完成后,将不会高速缓存该进程以用于后续查询。 具有大量连接或空闲进程的系统可能希望减少此数量以释放segment上的更多内存。 请注意,这是一个本地参数,必须为每个segment设置。

取值范围 默认值 设置分类
MB 500 local

system

restart

gp_workfile_compression

指定在哈希聚合或哈希连接操作溢出到磁盘时创建的临时文件是否压缩。

如果您的Greenplum数据库安装使用串行ATA(SATA)磁盘驱动器,则启用压缩可能有助于避免使用IO操作使磁盘子系统过载。

取值范围 默认值 设置分类
Boolean off master

session

reload

gp_workfile_limit_files_per_query

设置每个segment的每个查询允许的临时溢出文件(也称为工作文件)的最大数量。 溢出文件会在执行需要更多内存的查询时被创建。 超出限制时终止当前查询。

将值设置为0(零)以允许无限数量的溢出文件。 主会话重新加载

取值范围 默认值 设置分类
整数 100000 master

session

reload

gp_workfile_limit_per_query

设置允许单个查询用于在每个segment创建临时溢出文件的最大磁盘大小。 默认值为0,表示不强制执行限制。

取值范围 默认值 设置分类
KB 0 master

session

reload

gp_workfile_limit_per_segment

设置允许所有正在运行的查询用于在每个segment创建临时溢出文件的最大总磁盘大小。 默认值为0,表示不强制执行限制。

取值范围 默认值 设置分类
KB 0 local

system

restart

gpperfmon_port

设置所有数据收集代理(用于Command Center)与master通信的端口。

取值范围 默认值 设置分类
整数 8888 master

system

restart

ignore_checksum_failure

仅在启用了data_checksums时才有效。

Greenplum数据库使用校验和来防止将文件系统中已损坏的数据加载到由数据库进程管理的内存中。

默认情况下,当读取堆数据页时发生校验和验证错误时,Greenplum数据库会生成错误并阻止将页面加载到托管内存中。 当ignore_checksum_failure设置为on并且校验和验证失败时,Greenplum Database会生成警告,并允许将页面读入托管内存。 如果页面随后更新,则会将其保存到磁盘并复制到mirror。 如果页眉已损坏,即使启用此选项,也会报告错误。

Warning:ignore_checksum_failure设置为on可能会传播或隐藏数据损坏或导致其他严重问题。 但是,如果已检测到校验和失败且页眉未损坏,则将ignore_checksum_failure设置为on可能允许您绕过错误并恢复表中可能仍存在的未损坏元组。

默认设置为关闭,只能由超级用户更改。

取值范围 默认值 设置分类
Boolean off local

system

restart

integer_datetimes

报告PostgreSQL是否构建为支持64位整数日期和时间。

取值范围 默认值 设置分类
Boolean on read only

IntervalStyle

设置间隔值的显示格式。 值sql_standard生成与SQL标准区间文字匹配的输出。 当DateStyle参数设置为ISO时,postgres值会生成与8.4之前的PostgreSQL版本匹配的输出。

DateStyle参数设置为非ISO输出时, postgres_verbose值会产生与3.3之前的Greenplum版本匹配的输出。

iso_8601将生成与ISO 8601第4.4.3.2节中定义的指示符匹配时间间隔格式的输出。 有关详细信息,请参阅PostgreSQL 8.4文档

取值范围 默认值 设置分类
postgres

postgres_verbose

sql_standard

iso_8601

postgres master

session

reload

join_collapse_limit

Postgres查询优化器(planner)会在总项不超过配置就显式将内部JOIN结构重写为FROM项列表。 默认情况下,此变量的设置与from_collapse_limit相同,适用于大多数用途。 将其设置为1可防止对内部JOIN进行任何重新排序。 将此变量设置为介于1和from_collapse_limit之间的值可能有助于将计划时间与所选计划的质量进行权衡(更高的值会产生更好的计划)。

取值范围 默认值 设置分类
1-n 20 master

session

reload

keep_wal_segments

对于Greenplum数据库主镜像,如果发生检查点操作,则设置由活动Greenplum数据库主机保存的已处理WAL段文件的最大数量。

段文件用于在standby上同步活跃的master。

取值范围 默认值 设置分类
整数 5 master

system

reload

superuser

krb_caseins_users

设置是否应对区分大小写的Kerberos用户名进行处理。 默认值区分大小写(关闭)。

取值范围 默认值 设置分类
Boolean off master

system

reload

krb_server_keyfile

设置Kerberos服务器密钥文件的位置。

取值范围 默认值 设置分类
路径和文件名 unset master

system

restart

lc_collate

报告完成文本数据排序的区域设置。 初始化Greenplum数据库阵列时确定该值。

取值范围 默认值 设置分类
<系统依赖>   read only

lc_ctype

报告确定字符分类的区域设置。 初始化Greenplum数据库阵列时确定该值。

取值范围 默认值 设置分类
<系统依赖>   read only

lc_messages

设置消息的显示语言。 可用的语言环境取决于操作系统安装的内容 - 使用locale -a列出可用的语言环境。 默认值继承自服务器的执行环境。 在某些系统上,此区域设置类别不存在。 设置此变量仍然有效,但不会产生任何影响。 此外,有可能不存在所需语言的翻译消息。 在这种情况下,您将继续看到英文消息。

取值范围 默认值 设置分类
<系统依赖>   local

system

restart

lc_monetary

设置用于格式化货币金额的区域设置,例如使用to_char系列函数。 可用的语言环境取决于操作系统安装的内容 - 使用locale -a列出可用的语言环境。 默认值继承自服务器的执行环境。

取值范围 默认值 设置分类
<系统依赖>   local

system

restart

lc_numeric

设置用于格式化数字的语言环境,例如使用to_char系列函数。 可用的语言环境取决于操作系统安装的内容 - 使用locale -a列出可用的语言环境。 默认值继承自服务器的执行环境。

取值范围 默认值 设置分类
<系统依赖>   local

system

restart

lc_time

此参数目前不执行任何操作,但可能在将来执行。

取值范围 默认值 设置分类
<系统依赖>   local

system

restart

listen_addresses

指定服务器将侦听来自客户端应用程序的连接的TCP/IP地址 - 以逗号分隔的主机名和/或数字IP地址列表。 特殊条目*对应于所有可用的IP接口。 如果列表为空,则只能连接UNIX域套接字。

取值范围 默认值 设置分类
localhost,

host names,

IP addresses,

* (all available IP interfaces)

* master

system

restart

local_preload_libraries

以逗号分隔的共享库文件列表,以便在客户端会话开始时进行预加载。

取值范围 默认值 设置分类
    local

system

restart

lock_timeout

尝试获取表,索引,行或其他数据库对象的锁时,中止任何等待时间超过指定毫秒数的语句。 时间限制在每次锁定获取尝试是独立的。 该限制既适用于显式锁定请求(例如LOCK TABLE,也适用于没有NOWAITSELECT FOR UPDATE),也适用于隐式获取的锁定。 如果log_min_error_statement设置为ERROR或更低,则Greenplum数据库会记录超时的语句。 值为零(默认值)将关闭此锁定等待监视。

statement_timeout不同,此超时只能在等待锁定时发生。 请注意,如果statement_timeout非零, 则将lock_timeout设置为相同或更大的值是没有意义的,因为语句超时始终会先触发。

Greenplum数据库使用deadlock_timeoutgp_global_deadlock_detector_period来触发本地和全局死锁检测。 请注意,如果打开lock_timeout并将其设置为小于这些死锁检测超时的值,则Greenplum数据库将在该会话中触发死锁检查之前中止语句。

Note: 建议不要在postgresql.conf中设置lock_timeout,因为它会影响所有会话
取值范围 默认值 设置分类
0 - INT_MAX毫秒 0毫秒 master

session

reload

log_autostats

记录有关与gp_autostats_modegp_autostats_on_change_threshold相关的自动ANALYZE操作的信息。

取值范围 默认值 设置分类
Boolean off master

session

reload

superuser

log_connections

这将向服务器日志输出一行,详细说明每个成功的连接。 某些客户端程序(如psql)在确定是否需要密码时尝试连接两次,因此重复的“已接收连接”消息并不总是表示存在问题。

取值范围 默认值 设置分类
Boolean off local

system

restart

log_disconnections

这在客户端会话终止时在服务器日志中输出一行,并包括会话的持续时间。

取值范围 默认值 设置分类
Boolean off local

system

restart

log_dispatch_stats

设置为“on”时,此参数将添加一条日志消息,其中包含有关语句分派的详细信息。

取值范围 默认值 设置分类
Boolean off local

system

restart

log_duration

导致记录满足log_statement的每个已完成语句的持续时间。

取值范围 默认值 设置分类
Boolean off master

session

reload

superuser

log_error_verbosity

控制记录的每条消息在服务器日志中写入的详细信息量。

取值范围 默认值 设置分类
TERSE

DEFAULT

VERBOSE

DEFAULT master

session

reload

superuser

log_executor_stats

对于每个查询,将查询执行程序的性能统计信息写入服务器日志。 这是一种原始的分析工具。 无法与log_statement_stats一起启用。

取值范围 默认值 设置分类
Boolean off local

system

restart

log_hostname

默认情况下,连接日志消息仅显示连接主机的IP地址。 打开此选项会导致记录Greenplum数据库主服务器的IP地址和主机名。 请注意,根据您的主机名解析设置,这可能会造成不可忽视的性能损失。

取值范围 默认值 设置分类
Boolean off master

system

restart

log_min_duration_statement

如果语句的持续时间大于或等于指定的毫秒数,则将语句及其持续时间记录在单个日志行上。 将此值设置为0将打印所有语句及其持续时间。 -1禁用该功能。 例如,如果将其设置为250,则将记录运行250毫秒或更长时间的所有SQL语句。 启用此选项可用于跟踪应用程序中未优化的查询。

取值范围 默认值 设置分类
毫秒数, 0, -1 -1 master

session

reload

superuser

log_min_error_statement

控制是否还将在服务器日志中记录导致错误情况的SQL语句。 将记录导致指定级别或更高级别的错误的所有SQL语句。 默认为PANIC(有效关闭此功能以供正常使用)。 启用此选项有助于跟踪服务器日志中出现的任何错误的来源。

取值范围 默认值 设置分类
DEBUG5

DEBUG4

DEBUG3

DEBUG2

DEBUG1

INFO

NOTICE

WARNING

ERROR

FATAL

PANIC

ERROR master

session

reload

superuser

log_min_messages

控制将哪些消息级别写入服务器日志。 每个级别包括其后的所有级别。 级别越靠后,发送到日志的消息越少。

如果安装了Greenplum数据库PL/Container扩展。 此参数还控制PL/Container日志级别。 有关扩展的信息,请参阅Greenplum PL/Container语言扩展语言扩展。

取值范围 默认值 设置分类
DEBUG5

DEBUG4

DEBUG3

DEBUG2

DEBUG1

INFO

NOTICE

WARNING

LOG

ERROR

FATAL

PANIC

WARNING master

session

reload

superuser

log_parser_stats

对于每个查询,将查询解析器的性能统计信息写入服务器日志。 这是一种原始的分析工具。 无法与log_statement_stats一起启用。

取值范围 默认值 设置分类
Boolean off master

session

reload

superuser

log_planner_stats

对于每个查询,将Postgres查询优化器(planner)的性能统计信息写入服务器日志。 这是一种原始的分析工具。 无法与log_statement_stats一起启用。

取值范围 默认值 设置分类
Boolean off master

session

reload

superuser

log_rotation_age

确定Greenplum数据库将消息写入活动日志文件的时间。 经过这段时间后,文件将关闭并创建一个新的日志文件。 设置为零以禁用基于时间的新日志文件创建。

取值范围 默认值 设置分类
任何有效的时间表达式(数量和单位) 1d local

system

restart

log_rotation_size

确定触发旋转的单个日志文件的大小。 当日志文件大小等于或大于此大小时,将关闭该文件并创建新的日志文件。 设置为零以禁用基于大小的新日志文件的创建。

最大值为INT_MAX/1024。 如果指定了无效值,则使用默认值。 INT_MAX是可以作为整数存储在系统中的最大值。

取值范围 默认值 设置分类
kb 1048576 local

system

restart

log_statement

控制记录哪些SQL语句。 DDL记录所有数据定义命令,如CREATE,ALTER和DROP命令。 MOD记录所有DDL语句,以及INSERT,UPDATE,DELETE,TRUNCATE和COPY FROM。 如果包含的命令属于适当的类型,也会记录PREPARE和EXPLAIN ANALYZE语句。

取值范围 默认值 设置分类
NONE

DDL

MOD

ALL

ALL master

session

reload

superuser

log_statement_stats

对于每个查询,将查询解析器,优化器和执行器的总体性能统计信息写入服务器日志。 这是一种原始的分析工具。

取值范围 默认值 设置分类
Boolean off master

session

reload

superuser

log_temp_files

控制临时文件名和大小的记录。 可以为排序,哈希,临时查询结果和溢出文件创建临时文件。 删除时,每个临时文件都会在pg_log中创建一个日志条目。 根据临时文件的来源,可以在master和/或segment上创建日志条目。 log_temp_files值为零会记录所有临时文件信息,而正值仅记录大小大于或等于指定KB数的文件。 默认设置为-1,禁用日志记录。 只有超级用户才能更改此设置。

取值范围 默认值 设置分类
整数 -1 local

system

restart

log_timezone

设置用于写入日志的时间戳的时区。 与TimeZone不同,此值是系统范围的,因此所有会话都将一致地报告时间戳。 默认值是unknown,这意味着使用系统环境指定的任何时区。

取值范围 默认值 设置分类
字符串 unknown local

system

restart

log_truncate_on_rotation

截断(覆盖)而不是附加到任何现有的同名日志文件。 仅当由于基于时间的旋转而打开新文件时才会发生截断。 例如,将此设置与log_filename(例如gpseg#-%H.log)结合使用将导致生成二十四小时的日志文件,然后循环覆盖它们。 禁用时,将在所有情况下追加预先存在的文件。

取值范围 默认值 设置分类
Boolean off local

system

restart

maintenance_work_mem

指定要在维护操作中使用的最大内存量,例如VACUUMCREATE INDEX。 默认为16兆字节(16MB)。 较大的设置可能会提高清理和恢复数据库转储的性能。

取值范围 默认值 设置分类
整数 16 local

system

restart

max_appendonly_tables

设置可以写入或更新追加优化表的最大并发事务数。 超过最大值的事务将返回错误。

计算的操作是INSERTUPDATECOPYVACUUM操作。 限制仅适用于正在进行的交易。 一旦交易结束(中止或提交),就不再计入此限制。

对于针对分区表的操作,作为追加优化表并且被更改的每个子分区(子表)计为最大的单个表。 例如,分区表p_tbl被定义为具有三个子分区, 这些子分区是追加优化表p_tbl_ao1p_tbl_ao2p_tbl_ao3。 针对分区表p_tblINSERTUPDATE命令将更改追加优化表p_tbl_ao1p_tbl_ao2计为两个事务。

增加限制会在服务器启动时在master主机上分配更多共享内存。

取值范围 默认值 设置分类
整数 > 0 10000 master

system

restart

max_connections

与数据库服务器的最大并发连接数。 在Greenplum数据库系统中,用户客户端连接仅通过Greenplum master实例。 segment实例应该允许相比于master实例5-10倍的数量。 增加此参数时,还必须增加max_prepared_transactions。 有关限制并发连接的详细信息,请参阅Greenplum数据库管理员指南中的“配置客户端身份验证”。

增加此参数可能会导致Greenplum数据库请求更多共享内存。 有关Greenplum服务器实例共享内存缓冲区的信息,请参阅shared_buffers

取值范围 默认值 设置分类
10-n 250 on master

750 on segments

local

system

restart

max_files_per_process

设置允许每个服务器子进程的最大同时打开文件数。 如果内核强制执行每个进程的安全限制,则无需担心此设置。 一些平台,如BSD,内核将允许单个进程打开比系统真正支持的更多文件。

取值范围 默认值 设置分类
整数 1000 local

system

restart

max_function_args

报告函数参数的最大数量。

取值范围 默认值 设置分类
整数 100 read only

max_identifier_length

报告最大标识符长度。

取值范围 默认值 设置分类
整数 63 read only

max_index_keys

报告索引键的最大数量。

取值范围 默认值 设置分类
整数 32 read only

max_locks_per_transaction

创建共享锁定表时, 可以在max_locks_per_transaction *(max_connections + max_prepared_transactions)对象上描述锁定, 因此在任何时候都不能锁定这么多不同的对象。 这不是任何一个事务所采用的锁数的硬限制,而是最大平均值。 如果您的客户端在单个事务中触及许多不同的表,则可能需要提高此值。

取值范围 默认值 设置分类
整数 128 local

system

restart

max_prepared_transactions

设置可以同时处于准备状态的最大事务数。 Greenplum在内部使用准备好的事务来确保各个segment的数据完整性。 该值必须至少与master上的max_connections值一样大。 segment实例应设置为与master相同的值。

取值范围 默认值 设置分类
整数 250 on master

250 on segments

local

system

restart

max_resource_portals_per_transaction

Note: 仅当资源管理设置为资源队列时,max_resource_portals_per_transaction服务器配置参数才会生效。

设置每个事务允许的同时打开的用户声明游标的最大数量。 请注意,打开的游标将在资源队列中保留活动的查询槽。 用于资源管理。

取值范围 默认值 设置分类
整数 64 master

system

restart

max_resource_queues

Note: 仅当资源管理设置为资源队列时,max_resource_portals_per_transaction服务器配置参数才会生效。

设置可以在Greenplum数据库系统中创建的最大资源队列数。 请注意,资源队列是系统范围的(角色也是如此),因此它们适用于系统中的所有数据库。

取值范围 默认值 设置分类
整数 9 master

system

restart

max_stack_depth

指定服务器执行堆栈的最大安全深度。 此参数的理想设置是内核强制实际的堆栈大小限制(由ulimit -s或本地等效项设置),减去一兆字节左右的安全边际。 将参数设置为高于实际内核限制将意味着失控的递归函数可能导致单个后端进程崩溃。

取值范围 默认值 设置分类
KB 2MB local

system

restart

max_statement_mem

Note: 仅当资源管理设置为资源队列时,max_statement_mem服务器配置参数才会生效。

设置查询的最大内存限制。 由于将statement_mem设置得太高,有助于在查询处理期间避免segment主机上的内存不足错误。 当gp_resqueue_memory_policy=auto时, statement_mem和资源队列内存限制控制查询内存使用量。 考虑到单个segment主机的配置,请按如下方式计算此设置:

(seghost_physical_memory) / (average_number_concurrent_queries)

更改max_statement_memstatement_mem时, 必须先更改max_statement_mem,或者先在postgresql.conf文件中列出。

取值范围 默认值 设置分类
KB 2000MB master

session

reload

superuser

memory_spill_ratio

Note: 仅当资源管理设置为资源组时,memory_spill_ratio服务器配置参数才会生效。

设置事务中内存密集型运算符的内存使用阈值百分比。 当事务达到此阈值时,它将溢出到磁盘。

默认memory_spill_ratio百分比是为分配给当前活动角色的资源组定义的值。 您可以在会话级别设置memory_spill_ratio,以便在每个查询的基础上有选择地设置此限制。 例如,如果您有一个特定的查询溢出到磁盘并需要更多内存,您可以选择设置更大的memory_spill_ratio来增加初始内存分配。

在会话级别设置memory_spill_ratio时,Greenplum数据库不会对新值执行语义验证,直到您下次执行查询为止。

取值范围 默认值 设置分类
0 - 100 20 master

session

reload

optimizer

运行SQL查询时启用或禁用GPORCA。 默认on。 如果禁用GPORCA,Greenplum数据库仅使用Postgres查询优化器。

GPORCA与Postgres查询优化器共存。 启用GPORCA后,Greenplum数据库会尽可能使用GPORCA为查询生成执行计划。 如果无法使用GPORCA,则使用Postgres查询优化器。

可以为数据库系统,单个数据库或会话或查询设置optimizer参数。

有关Postgres查询优化器和GPORCA的信息,请参阅Querying Data。 .

取值范围 默认值 设置分类
Boolean on master

session

reload

optimizer_analyze_root_partition

对于分区表,控制在表上运行ANALYZE命令时是否需要ROOTPARTITION关键字来收集根分区统计信息。 GPORCA在生成查询计划时使用根分区统计信息。 Postgres查询优化器不使用这些统计信息。

参数的默认设置为onANALYZE命令可以在不使用ROOTPARTITION关键字的情况下收集根分区统计信息。 在根分区上运行ANALYZE时,或者在分区表的子叶子分区上运行ANALYZE并且其他子叶子分区具有统计信息时,将收集根分区统计信息。 当该值为off时,您必须运行ANALZYE ROOTPARTITION以收集根分区统计信息。

当服务器配置参数optimizer的值为on(默认值)时,此参数的值也应该为on。 有关收集分区表的表统计信息的信息,请参阅ANALYZE

有关Postgres查询优化器和GPORCA的信息,请参阅查询数据

取值范围 默认值 设置分类
Boolean on master

session

reload

optimizer_array_expansion_threshold

启用GPORCA(默认值)并处理包含具有常量数组的谓词的查询时, optimizer_array_expansion_threshold参数会根据数组中的常量数限制优化过程。 如果查询谓词中的数组包含多于参数指定的数字元素,则GPORCA会在查询优化期间禁用谓词转换为其析取范式。

默认值是100。

例如,当GPORCA执行包含具有100个以上元素的IN子句的查询时, GPORCA在查询优化期间不会将谓词转换为其析取范式,以减少优化时间消耗更少的内存。 查询处理的差异可以在查询EXPLAIN计划的IN子句的过滤条件中看到。

更改此参数的值会更改较短的优化时间和较低的内存消耗之间的权衡, 以及查询优化期间约束派生的潜在好处,例如冲突检测和分区消除。

可以为数据库系统,单个数据库或会话或查询设置该参数。

取值范围 默认值 设置分类
整数 > 0 25 master

session

reload

optimizer_control

控制是否可以使用SETRESET命令或Greenplum数据库实用程序gpconfig更改服务器配置参数optimizer。 如果启用了optimizer_control参数值,则用户可以设置优化程序参数。 如果optimizer_control参数值为off,则无法更改优化程序参数。

取值范围 默认值 设置分类
Boolean on master

system

restart

superuser

optimizer_cte_inlining_bound

启用GPORCA(默认值)时,此参数控制为公用表表达式(CTE)查询(包含WHERE子句的查询)执行的内联量。 默认值0禁用内联。

可以为数据库系统,单个数据库或会话或查询设置该参数。

取值范围 默认值 设置分类
Decimal >= 0 0 master

session

reload

optimizer_enable_associativity

启用GPORCA(默认设置)时,此参数控制是否在查询优化期间启用连接关联变换。 转换分析连接顺序。 对于默认值off,仅启用用于分析连接顺序的GPORCA动态编程算法。 连接关联变换很大程度上复制了较新的动态编程算法的功能。

如果值为on,GPORCA可以在查询优化期间使用关联变换。

可以为数据库系统,单个数据库或会话或查询设置该参数。

有关GPORCA的信息,请参阅关于GPORCA

取值范围 默认值 设置分类
Boolean off master

session

reload

optimizer_enable_master_only_queries

启用GPORCA(默认值)时,此参数允许GPORCA执行仅在Greenplum数据库master上运行的catalog查询。 对于默认值off,只有Postgres查询优化器可以执行仅在Greenplum数据库master上运行的catalog查询。

可以为数据库系统,单个数据库或会话或查询设置该参数。

Note: 启用此参数会降低短期运行的catalog查询的性能。 要避免此问题,请仅为会话或查询设置此参数。

有关GPORCA的信息,请参阅关于GPORCA

取值范围 默认值 设置分类
Boolean off master

session

reload

optimizer_force_agg_skew_avoidance

启用GPORCA(默认值)时,此参数会影响GPORCA在生成3阶段聚合计划时考虑的查询计划备选方案。 当值为true时,默认情况下,GPORCA仅考虑3阶段聚合计划, 其中中间聚合使用GROUP BYDISTINCT列进行分发,以减少处理偏斜的影响。

如果值为false,GPORCA还可以考虑使用GROUP BY列进行分发的计划。 当处理偏斜存在时,这些计划可能表现不佳。

有关GPORCA的信息,请参阅关于GPORCA

取值范围 默认值 设置分类
Boolean true master

session

reload

optimizer_force_multistage_agg

对于默认设置,启用GPORCA且此参数为true,GPORCA在生成此类计划备选项时为标量不同的合格聚合选择3阶段聚合计划。 当值为false时,GPORCA会根据成本选择而不是启发式选择。

可以为数据库系统,单个数据库或会话或查询设置该参数。

取值范围 默认值 设置分类
Boolean true master

session

reload

optimizer_force_three_stage_scalar_dqa

对于默认设置,GPORCA已启用且此参数为true, GPORCA会在生成此类计划备选项时选择具有多级聚合的计划。 当值为false时,GPORCA会根据成本选择而不是启发式选择。

可以为数据库系统,单个数据库或会话或查询设置该参数。

取值范围 默认值 设置分类
Boolean true master

session

reload

optimizer_join_arity_for_associativity_commutativity

该值是一个优化提示,用于限制在查询优化期间探索的连接关联性和连接可交换性转换的数量。 该限制控制GPORCA在查询优化期间考虑的备选计划。 例如,默认值18是GPORCA在优化期间n-ary连接运算符具有超过18个子节点时停止探索连接关联性和连接交换变换的优化提示。

对于具有大量连接的查询,指定较低的值可通过限制GPORCA评估的备用查询计划的数量来提高查询性能。 但是,将值设置得太低可能会导致GPORCA生成次优执行的查询计划。

optimizer_join_order参数设置为querygreedy时,此参数无效。

可以为数据库系统或会话设置此参数。

取值范围 默认值 设置分类
整数 > 0 18 local

system

reload

optimizer_join_order

启用GPORCA时,此参数通过指定要评估的连接排序备选类型来设置查询优化期间的连接排序的优化级别。

  • query - 使用查询中指定的连接顺序。
  • greedy - 根据连接中关系的最小基数,计算查询中指定的连接顺序和备选方案。
  • exhaustive - 应用转换规则以查找和评估所有连接排序备选方案。

默认值是exhaustive。 将此参数设置为querygreedy可以生成次优查询计划。 但是,如果管理员确信使用querygreedy设置生成了令人满意的计划, 则可以通过将参数设置为较低的优化级别来提高查询优化时间。

将此参数设置为querygreedy会覆盖optimizer_join_order_thresholdoptimizer_join_arity_for_associativity_commutativity参数。

可以为单个数据库,会话或查询设置此参数。

取值范围 默认值 设置分类
query

greedy

exhaustive

exhaustive master

session

reload

optimizer_join_order_threshold

启用GPORCA(默认设置)时,此参数设置GPORCA将使用基于动态编程的连接排序算法的最大连接子数。 您可以为单个查询或整个会话设置此值。

optimizer_join_query参数设置为querygreedy时,此参数无效。

取值范围 默认值 设置分类
0 - 12 10 master

session

reload

optimizer_mdcache_size

设置Greenplum数据库master上GPORCA在查询优化期间用于缓存查询元数据(优化数据)的最大内存量,。 基于内存限制会话。 GPORCA使用默认设置在查询优化期间缓存查询元数据: 启用GPORCA并启用optimizer_metadata_caching

默认值为16384(16MB)。 这是通过性能分析确定的最佳值。

您可以指定KB,MB或GB的值。 默认单位是KB。 例如,值16384是16384KB。 值1GB与1024MB或1048576KB相同。 如果值为0,则不限制高速缓存的大小。

可以为数据库系统,单个数据库或会话或查询设置此参数。

取值范围 默认值 设置分类
整数 >= 0 16384 master

session

reload

optimizer_metadata_caching

启用GPORCA(默认值)时,此参数指定GPORCA在查询优化期间是否在Greenplum数据库master上的内存中缓存查询元数据(优化数据)。 此参数的默认值为on,启用缓存。 缓存是基于会话的。 会话结束时,缓存将被释放。 如果查询元数据的数量超过缓存大小,则从缓存中逐出旧的未使用的元数据。

如果该值为off,则GPORCA在查询优化期间不会缓存元数据。

可以为数据库系统,单个数据库或会话或查询设置此参数。

服务器配置参数optimizer_mdcache_size控制查询元数据缓存的大小。

取值范围 默认值 设置分类
Boolean on master

session

reload

optimizer_minidump

GPORCA生成minidump文件以描述给定查询的优化上下文。 文件中的信息格式不易于调试或故障排除。 minidump文件位于主数据目录下,并使用以下命名格式:

Minidump_date_time.mdp

minidump文件包含此查询相关信息:
  • catalog对象,包括GPORCA所需的数据类型,表,运算符和统计信息
  • 查询的内部表示(DXL)
  • GPORCA制定的计划的内部代表(DXL)
  • 传递给GPORCA的系统配置信息,例如服务器配置参数,成本和统计信息配置以及segment数
  • 优化查询时生成的堆栈错误跟踪

将此参数设置为ALWAYS会为所有查询生成一个minidump。 将此参数设置为ONERROR以最小化总优化时间。

有关GPORCA的信息,请参阅关于GPORCA

取值范围 默认值 设置分类
ONERROR

ALWAYS

ONERROR master

session

reload

optimizer_nestloop_factor

此参数向GPORCA添加成本因子,以在查询优化期间优先考虑哈希连接而不是嵌套循环连接。 在使用均匀分布的数据评估大量工作负载之后,选择了默认值1024。 应将1024视为此参数的实际上限设置。 如果您发现GPORCA选择哈希连接的频率超过预期,则减小该值以转换成本因子,转而使用嵌套循环连接。

The parameter can be set for a database system, an individual database, or a session or query.

取值范围 默认值 设置分类
INT_MAX > 1 1024 master

session

reload

optimizer_parallel_union

启用GPORCA(默认值)时,optimizer_parallel_union控制包含UNIONUNION ALL子句的查询的并行化数量。

当值为off时,默认GPORCA会生成一个查询计划,其中APPEND(UNION)运算符的每个子项与APPEND运算符位于同一个切片中。 在查询执行期间,子节点以顺序方式执行。

当该值打开时,GPORCA会生成一个查询计划,其中重新分配motion节点位于APPEND(UNION)运算符下。 在查询执行期间,子项和父APPEND运算符位于不同的切片上,允许APPEND(UNION)运算符的子项在segment实例上并行执行。

可以为数据库系统,单个数据库或会话或查询设置该参数。

取值范围 默认值 设置分类
boolean off master

session

reload

optimizer_print_missing_stats

启用GPORCA(默认设置)时,此参数控制有关查询缺少统计信息的列的表列信息的显示。 默认值为true,将列信息显示给客户端。 当值为false时,不会将信息发送到客户端。

在查询执行期间或使用EXPLAINEXPLAIN ANALYZE命令显示信息。

可以为数据库系统,单个数据库或会话设置该参数。

取值范围 默认值 设置分类
Boolean true master

session

reload

optimizer_print_optimization_stats

启用GPORCA(默认设置)时,此参数可以为查询的各种优化阶段记录GPORCA查询优化统计信息。 默认值为off,请勿记录优化统计信息。 要记录优化统计信息,必须将此参数设置为on, 并且必须将参数client_min_messages设置为log
  • set optimizer_print_optimization_stats = on;
  • set client_min_messages = 'log';

在查询执行期间或使用EXPLAINEXPLAIN ANALYZE命令记录信息。

可以为数据库系统,单个数据库或会话或查询设置此参数。

取值范围 默认值 设置分类
Boolean off master

session

reload

optimizer_sort_factor

启用GPORCA(默认值)时,optimizer_sort_factor控制在查询优化期间应用于排序操作的成本因子。 默认值1指定默认排序成本因子。 该值是默认因子的增加或减少的比率。 例如,值2.0将成本因子设置为默认值的两倍,值0.5将因子设置为默认值的一半。

可以为数据库系统,单个数据库或会话或查询设置该参数。

取值范围 默认值 设置分类
Decimal > 0 1 master

session

reload

password_encryption

如果在CREATE USERALTER USER中指定了密码而未写入ENCRYPTEDUNENCRYPTED, 则此选项确定是否要加密密码。

取值范围 默认值 设置分类
Boolean on master

session

reload

password_hash_algorithm

指定存储加密的Greenplum数据库用户密码时使用的加密哈希算法。 默认算法是MD5。

有关设置密码哈希算法以保护用户密码的信息, 请参阅Greenplum数据库管理员指南中的“保护Greenplum数据库中的密码”。

取值范围 默认值 设置分类
MD5

SHA-256

MD5 master

session

reload

superuser

pljava_classpath

包含jar文件或目录的冒号(:)分隔列表,其中包含PL/Java函数所需的jar文件。 必须指定jar文件或目录的完整路径,但$GPHOME/lib/postgresql/java目录中的jar文件的路径可以省略。 jar文件必须安装在所有Greenplum主机上的相同位置,并且可由gpadmin用户读取。

pljava_classpath参数用于在每个用户会话开始时组装PL/Java类路径。 会话启动后添加的Jar文件不可用于该会话。

如果在pljava_classpath中指定了jar文件的完整路径,则会将其添加到PL/Java类路径中。 指定目录时,该目录包含的任何jar文件都将添加到PL/Java类路径中。 搜索不会下降到指定目录的子目录中。 如果jar文件的名称包含在没有路径的pljava_classpath中, 则jar文件必须位于$GPHOME/lib/postgresql/java目录中。

Note: 如果要搜索的目录很多或者有大量的jar文件,性能会受到影响。

如果pljava_classpath_insecurefalse, 则设置pljava_classpath参数需要超级用户权限。 当没有超级用户权限的用户执行代码时,在SQL代码中设置类路径将失败。 必须先由超级用户或postgresql.conf文件设置pljava_classpath参数。 更改postgresql.conf文件中的类路径需要重新加载(gpstop -u)。

取值范围 默认值 设置分类
string   master

session

reload

superuser

pljava_classpath_insecure

控制是否可以由没有Greenplum数据库超级用户权限的用户设置服务器配置参数pljava_classpath。 如果为true,则pljava_classpath可由常规用户设置。 否则,pljava_classpath只能由数据库超级用户设置。 默认值为false

Warning: 启用此参数会使非管理员数据库用户能够运行未经授权的Java方法,从而暴露出安全风险。
取值范围 默认值 设置分类
Boolean false master

session

restart

superuser

pljava_statement_cache_size

为预准备语句设置JRE MRU(最近使用)缓存的大小(以KB为单位)。

取值范围 默认值 设置分类
KB 10 master

system

restart

superuser

pljava_release_lingering_savepoints

如果为true,则PL/Java函数中使用的延迟保存点将在函数退出时释放。 如果为false,则将回滚保存点。

取值范围 默认值 设置分类
Boolean true master

system

restart

superuser

pljava_vmoptions

定义Java VM的启动选项。 默认值为空字符串(“”)。

取值范围 默认值 设置分类
string   master

system

reload

superuser

port

Greenplum实例的数据库侦听器端口。 master和每个segment都有自己的端口。 还必须在gp_segment_configuration中更改Greenplum系统的端口号。 您必须在更改端口号之前关闭Greenplum数据库系统。

取值范围 默认值 设置分类
任何有效的端口号 5432 local

system

restart

random_page_cost

设置Postgres查询优化器(planner)的非顺序读取磁盘页面的成本估计。 这是连续页面提取的成本的倍数。 较高的值使得更有可能使用顺序扫描,较低的值使得更有可能使用索引扫描。

取值范围 默认值 设置分类
浮点数 100 master

session

reload

readable_external_table_timeout

当SQL查询从外部表读取时,参数值指定当数据停止从外部表返回时,Greenplum数据库在取消查询之前等待的时间(以秒为单位)。

默认值0,指定没有超时。 Greenplum数据库不会取消查询。

如果使用gpfdist的查询运行很长时间然后返回错误“间歇性网络连接问题”,则可以为readable_external_table_timeout设定值。 如果gpfdist在指定的时间内没有返回任何数据,Greenplum数据库将取消该查询。

取值范围 默认值 设置分类
整数 >= 0 0 master

system

reload

repl_catchup_within_range

对于Greenplum数据库主镜像,控制活跃从节点的更新。 如果walsender尚未处理的WAL段文件数超过此值,Greenplum数据库将更新活跃从节点。

如果段文件的数量不超过该值,则Greenplum数据库会阻止更新,以允许walsender处理文件。 如果已处理所有WAL段,则更新活动主站。 If the number of segment files does not exceed the value, Greenplum Database blocks updates to the to allow the walsender process the files. If all WAL segments have been processed, the active master is updated.

取值范围 默认值 设置分类
0 - 64 1 master

system

reload

superuser

replication_timeout

对于Greenplum数据库主镜像, 设置活动主服务器上的walsender进程等待来自备用主服务器上的walreceiver进程的状态消息的最长时间(以毫秒为单位)。 如果未收到消息,则walsender会记录一条错误消息。

The wal_receiver_status_interval controls the interval between walreceiver status messages.

取值范围 默认值 设置分类
0 - INT_MAX 60000 ms (60 seconds) master

system

reload

superuser

regex_flavor

“扩展”设置可能对于与PostgreSQL 7.4之前版本的精确向后兼容非常有用。

取值范围 默认值 设置分类
advanced

extended

basic

advanced master

session

reload

resource_cleanup_gangs_on_wait

Note: 仅当资源管理设置为资源队列时,resource_cleanup_gangs_on_wait服务器配置参数才会生效。

如果通过资源队列提交语句,请在锁定资源队列之前清除所有空闲的查询执行程序工作进程。

取值范围 默认值 设置分类
Boolean on master

system

restart

resource_select_only

Note: 仅当资源管理设置为资源队列时,resource_select_only服务器配置参数才会生效。

设置资源队列管理的查询类型。 如果设置为on,则评估SELECTSELECT INTOCREATE TABLE AS SELECTDECLARE CURSOR命令。 如果设置为off,则还将评估INSERTUPDATEDELETE命令。

取值范围 默认值 设置分类
Boolean off master

system

restart

runaway_detector_activation_percent

Note: 仅当资源管理设置为资源队列时,runaway_detector_activation_percent服务器配置参数才会生效。

设置触发查询终止的Greenplum数据库vmem内存的百分比。 如果用于Greenplum数据库segment的vmem内存百分比超过指定值, Greenplum数据库将根据内存使用情况终止查询,从占用最大内存量的查询开始。 查询将终止,直到使用的vmem百分比低于指定的百分比。

使用服务器配置参数gp_vmem_protect_limit指定活动Greenplum数据库segment实例的最大vmem值。

例如,如果vmem内存设置为10GB, 并且runaway_detector_activation_percent的值为90(90%), 则当使用的vmem内存超过9GB时,Greenplum数据库将开始终止查询。

值0禁用基于所使用的vmem的百分比自动终止查询。

取值范围 默认值 设置分类
百分比(整数) 90 local

system

restart

search_path

指定在没有schema组件的简单名称引用对象时搜索schema的顺序。 当在不同schema中存在具有相同名称的对象时,将使用在搜索路径中首先找到的对象。 始终搜索系统catalog schema pg_catalog,无论路径中是否提及它。 在未指定特定目标schema的情况下创建对象时,它们将被放置在搜索路径中列出的第一个schema中。 可以通过SQL函数current_schemas()检查搜索路径的当前有效值。 current_schemas()显示了search_path中出现的请求是如何解析的。

取值范围 默认值 设置分类
以逗号分隔的schema名称列表 $user,public master

session

reload

seq_page_cost

对于Postgres查询优化器(planner),设置作为一系列连续提取的一部分的磁盘页面提取的成本估计。

取值范围 默认值 设置分类
浮点数 1 master

session

reload

server_encoding

报告数据库编码(字符集)。 确定何时初始化Greenplum数据库阵列。 通常,客户只需要关注client_encoding的值。

取值范围 默认值 设置分类
<系统依赖> UTF8 read only

server_version

报告此版本的Greenplum数据库所基于的PostgreSQL版本。

取值范围 默认值 设置分类
字符串 9.4.20 read only

server_version_num

报告此版本的Greenplum数据库基于整数的PostgreSQL版本。

取值范围 默认值 设置分类
整数 90420 read only

shared_buffers

设置Greenplum数据库segment实例用于共享内存缓冲区的内存量。 此设置必须至少为128KB且至少为max_connections的16KB倍。

每个Greenplum数据库segment实例根据segment配置计算并尝试分配一定量的共享内存。 shared_buffers的值是此共享内存计算的重要部分,但并非全部。 设置shared_buffers时,可能还需要调整操作系统参数SHMMAXSHMALL的值。

操作系统参数SHMMAX指定单个共享内存分配的最大大小。 SHMMAX的值必须大于此值:
 shared_buffers + other_seg_shmem
other_seg_shmem的值是Greenplum数据库共享内存计算的部分,而shared_buffers值没有考虑该部分。 other_seg_shmem值将根据segment配置而有所不同。

使用默认的Greenplum数据库参数值, 对于Greenplum数据库segment,other_seg_shmem的值大约为111MB, 对于Greenplum数据库master,大约为79MB。

操作系统参数SHMALL指定主机上的最大共享内存量。 SHMALL的值必须大于此值:
 (num_instances_per_host * ( shared_buffers + other_seg_shmem )) + other_app_shared_mem 
other_app_shared_mem的值是主机上其他应用程序和进程使用的共享内存量。

发生共享内存分配错误时,解决共享内存分配问题的可能方法是增加SHMMAXSHMALL, 或减少shared_buffersmax_connections

有关参数SHMMAXSHMALL的Greenplum数据库值的信息,请参阅Greenplum数据库安装指南

取值范围 默认值 设置分类
整数 > 16K * max_connections 125MB local

system

restart

shared_preload_libraries

以逗号分隔的共享库列表,这些共享库将在服务器启动时预加载。 PostgreSQL过程语言库可以通过这种方式预加载, 通常使用语法'$libdir/plXXX', 其中XXX是pgsql,perl,tcl或python。 通过预加载共享库,首次使用库时可以避免库启动时间。 如果找不到指定的库,则服务器将无法启动。

取值范围 默认值 设置分类
    local

system

restart

ssl

启用SSL连接。

取值范围 默认值 设置分类
Boolean off master

system

restart

ssl_ciphers

指定允许在安全连接上使用的SSL密码列表。 有关支持的密码列表,请参见openssl手册页。

取值范围 默认值 设置分类
字符串 ALL master

system

restart

standard_conforming_strings

确定普通的字符串文字('...')是否按字面意思处理反斜杠,如SQL标准中所指定的那样。 默认值为on。 关闭此参数可将字符串文字中的反斜杠视为转义字符而不是文字反斜杠。 应用程序可以检查此参数以确定如何处理字符串文字。 此参数的存在也可以作为支持转义字符串语法(E'...')的指示。

取值范围 默认值 设置分类
Boolean on master

session

reload

statement_mem

Note: 仅当资源管理设置为资源队列时,statement_mem服务器配置参数才会生效。

为每个查询分配segment主机内存。 使用此参数分配的内存量不能超过max_statement_mem或提交查询的资源队列的内存限制。 当gp_resqueue_memory_policy =auto时, statement_mem和资源队列内存限制控制查询内存使用量。

如果查询需要额外的内存,则使用磁盘上的临时溢出文件。

该计算可用于估计各种情况的合理值。

( gp_vmem_protect_limitGB * .9 ) / max_expected_concurrent_queries

gp_vmem_protect_limit设置为8192MB(8GB)并假设最多包含10%缓冲的40个并发查询

(8GB * .9) / 40 = .18GB = 184MB

更改max_statement_memstatement_mem时, 必须先更改max_statement_mem,或者先在postgresql.conf文件中列出。

取值范围 默认值 设置分类
KB 128MB master

session

reload

statement_timeout

中止任何超过指定毫秒数的语句。 0关闭限制。

取值范围 默认值 设置分类
毫秒数 0 master

session

reload

stats_queue_level

Note: 仅当资源管理设置为资源队列时,stats_queue_level服务器配置参数才会生效。

收集有关数据库活动的资源队列统计信息。

取值范围 默认值 设置分类
Boolean off master

session

reload

superuser_reserved_connections

确定为Greenplum数据库超级用户保留的连接插槽数。

取值范围 默认值 设置分类
整数 < max_connections 3 local

system

restart

tcp_keepalives_count

在连接被认为死亡之前,可能会丢失多少个Keepalive。 值0使用系统默认值。 如果不支持TCP_KEEPCNT,则此参数必须为0。

将此参数用于不在primary和mirror之间的所有连接。

取值范围 默认值 设置分类
丢失的Keepalive数量 0 local

system

restart

tcp_keepalives_idle

在空闲连接上发送Keepalive之间的秒数。 值0使用系统默认值。 如果不支持TCP_KEEPIDLE,则此参数必须为0。

将此参数用于不在primary和mirror之间的所有连接。

取值范围 默认值 设置分类
秒数 0 local

system

restart

tcp_keepalives_interval

在重新传输之前等待keepalive响应的秒数。 值0使用系统默认值。 如果不支持TCP_KEEPINTVL,则此参数必须为0。

将此参数用于不在primary和mirror之间的所有连接。

取值范围 默认值 设置分类
number of seconds 0 local

system

restart

temp_buffers

以块为单位设置最大内存,以允许每个数据库会话使用临时缓冲区。 这些是仅用于访问临时表的会话本地缓冲区。 可以在单个会话中更改设置,但只能在会话中首次使用临时表之前更改。 在实际上不需要大量临时缓冲区的会话中设置大值的成本只是每个块的缓冲区描述符,或每个增量大约64个字节。 但是,如果实际使用了缓冲区,则将消耗额外的32768字节。

您可以将此参数设置为32K块的数量(例如,1024以允许32MB用于缓冲区), 或指定允许的最大内存量(例如,对于1536块,为'48MB')。 gpconfig实用程序和SHOW命令报告临时缓冲区允许的最大内存量。

取值范围 默认值 设置分类
整数 1024 (32MB) master

session

reload

TimeZone

设置显示和解释时间戳的时区。 默认设置是使用系统环境指定的任何时区。 请参阅PostgreSQL文档中的日期/时间关键字

取值范围 默认值 设置分类
时区缩写   local

restart

timezone_abbreviations

设置服务器为日期时间输入接受的时区缩写集合。 默认值为Default,这是一个适用于世界大部分地区的集合。 可以为特定安装定义AustraliaIndia以及其他集合。 可能的值是存储在$GPHOME/share/postgresql/timezonesets/中的配置文件的名称。

要将Greenplum数据库配置为使用自定义时区集合, 请将包含时区定义的文件复制到Greenplum数据库master和segment主机上的$GPHOME/share/postgresql/timezonesets/目录中。 然后将服务器配置参数timezone_abbreviations的值设置为该文件。 例如,要使用包含默认时区和WIB(Waktu Indonesia Barat)时区的文件custom

  1. 从目录$GPHOME/share/postgresql/timezonesets/复制文件Default到文件custom。 将文件Asia.txt中的WIB时区信息添加到custom
  2. 将文件custom复制到Greenplum数据库master和segment主机上的$GPHOME/share/postgresql/timezonesets/目录。
  3. 将服务器配置参数timezone_abbreviations的值设置为custom
  4. 重新加载服务器配置文件(gpstop -u)。
取值范围 默认值 设置分类
字符串 默认值 master

session

reload

track_activity_query_size

设置存储在系统catalog视图pg_stat_activitycurrent_query列中的查询文本的最大长度限制。 最小长度为1024个字符。

取值范围 默认值 设置分类
整数 1024 local

system

restart

transaction_isolation

设置当前事务隔离级别。

取值范围 默认值 设置分类
read committed

serializable

read committed master

session

reload

transaction_read_only

设置当前事务的只读状态。

取值范围 默认值 设置分类
Boolean off master

session

reload

transform_null_equals

启用时,表达式expr = NULL(或NULL = expr)被视为expr IS NULL,即,如果expr计算为空值,则返回true,否则返回false。 正确的符合SQL规范的expr = NULL行为始终返回null(未知)。

取值范围 默认值 设置分类
Boolean off master

session

reload

unix_socket_directory

指定服务器要侦听来自客户端应用程序的连接的UNIX域套接字的目录。

取值范围 默认值 设置分类
目录路径 unset local

system

restart

unix_socket_group

设置UNIX域套接字的拥有组。 默认情况下,这是一个空字符串,它使用当前用户的默认组。

取值范围 默认值 设置分类
UNIX组名称 unset local

system

restart

unix_socket_permissions

设置UNIX域套接字的访问权限。 UNIX域套接字使用通常的UNIX文件系统权限集。 请注意,对于UNIX域套接字,只有写权限才对。

取值范围 默认值 设置分类
数字UNIX文件权限模式(由chmodumask命令接受) 511 local

system

restart

update_process_title

每次服务器收到新的SQL命令时,都可以更新进程标题。 通常由ps命令查看进程标题。

取值范围 默认值 设置分类
Boolean on local

system

restart

vacuum_cost_delay

超出成本限制时vacuum进程将休眠的时间长度。 0禁用基于成本的vacuum延迟功能。

取值范围 默认值 设置分类
毫秒 < 0 (以10的倍数表示) 0 local

system

restart

vacuum_cost_limit

导致vacuum进程进入睡眠状态的累积成本。

取值范围 默认值 设置分类
整数 > 0 200 local

system

restart

vacuum_cost_page_dirty

vacuum修改先前干净的块时收取的估计成本。 它表示将脏块再次刷新到磁盘所需的额外I/O.

取值范围 默认值 设置分类
整数 > 0 20 local

system

restart

vacuum_cost_page_hit

vacuum共享缓冲区缓存中找到的缓冲的估计成本。 它表示锁定缓冲池,查找共享哈希表和扫描页面内容的成本。

取值范围 默认值 设置分类
整数 > 0 1 local

system

restart

vacuum_cost_page_miss

vacuum必须从磁盘读取的缓冲的估计成本。 这表示锁定缓冲池,查找共享哈希表,从磁盘读取所需块并扫描其内容的代价。

取值范围 默认值 设置分类
整数 > 0 10 local

system

restart

vacuum_freeze_min_age

指定VACUUM在扫描表时决定是否用FrozenXID替换事务ID时应使用的截止年龄(在事务中)。

有关VACUUM和事务ID管理的信息, 请参阅Greenplum数据库管理员指南PostgreSQL文档中的“管理数据”。

取值范围 默认值 设置分类
整数 0-100000000000 100000000 local

system

restart

validate_previous_free_tid

启用验证空闲元组ID(TID)列表的测试。 该列表由Greenplum数据库维护和使用。 Greenplum数据库通过确保当前空闲元组的先前空闲TID是有效的空闲元组来确定空闲TID列表的有效性。 默认值为true,启用测试。

如果Greenplum数据库检测到空闲TID列表中的损坏, 则会重建空闲TID列表,并记录警告, 并且检查失败的查询会返回警告。 Greenplum数据库尝试执行查询。

取值范围 默认值 设置分类
Boolean true master

session

reload

verify_gpfdists_cert

使用gpfdists协议定义Greenplum数据库外部表以使用SSL安全性时,此参数控制是否启用SSL证书身份验证。 默认设置为true,当Greenplum数据库与gpfdist实用程序通信以从外部数据源读取数据或将数据写入外部数据源时,将启用SSL身份验证。

false将禁用SSL证书身份验证。 忽略这些SSL异常:
  • Greenpum数据库不信任gpfdist使用的自签名SSL证书。
  • SSL证书中包含的主机名与运行gpfdist的主机名不匹配。
您可以将值设置为false以在测试Greenplum数据库外部表与提供外部数据的gpfdist实用程序之间的通信时禁用身份验证。
Warning: 通过不验证gpfdists SSL证书禁用SSL证书身份验证会暴露安全风险。

有关gpfdists协议的信息,请参阅gpfdists:// Protocol。 有关运行gpfdist实用程序的信息,请参阅gpfdist

取值范围 默认值 设置分类
Boolean true master

session

reload

vmem_process_interrupt

在Greenplum数据库查询执行期间,为查询预留vmem内存之前,启用检查中断。 在为查询保留进一步的vmem之前,请检查查询的当前会话是否具有挂起的查询取消或其他挂起的中断。 这确保了更具响应性的中断处理,包括查询取消请求。 默认为关闭。

取值范围 默认值 设置分类
Boolean off master

session

reload

wal_receiver_status_interval

对于Greenplum数据库主镜像,设置发送到活动master的walreceiver进程状态消息之间的间隔(以秒为单位)。 在高负载下,时间可能会更长。

replication_timeout的值控制walsender进程等待walreceiver消息的时间。

取值范围 默认值 设置分类
整数 0- INT_MAX/1000 10 sec master

system

reload

superuser

writable_external_table_bufsize

Greenplum数据库用于网络通信的缓冲区大小(以KB为单位),例如gpfdist实用程序和外部Web表(使用http)。 Greenplum数据库在写入数据之前将数据存储在缓冲区中。 有关gpfdist的信息,请参阅Greenplum数据库实用程序指南

取值范围 默认值 设置分类
整数 32 - 131072 (32KB - 128MB) 64 local

session

reload

xid_stop_limit

发生事务ID环绕的ID之前的事务ID数。 达到此限制时,Greenplum数据库会停止创建新事务,以避免因事务ID环绕而导致数据丢失。

取值范围 默认值 设置分类
整数 10000000 - 2000000000 1000000000 local

system

restart

xid_warn_limit

xid_stop_limit指定的限制之前的事务ID数。 当Greenplum数据库达到此限制时,它会发出警告以执行VACUUM操作,以避免因事务ID环绕而导致数据丢失。

取值范围 默认值 设置分类
整数 10000000 - 2000000000 500000000 local

system

restart

xmlbinary

指定如何在XML数据中编码二进制值。 例如,当bytea值转换为XML时。 二进制数据可以转换为base64编码或十六进制编码。 默认值为base64。

可以为数据库系统,单个数据库或会话设置该参数。

取值范围 默认值 设置分类
base64

hex

base64 master

session

reload

xmloption

指定是否将XML数据视为执行隐式解析和序列化的操作的XML文档(document)或XML内容片段(content)。 默认为content

此参数会影响xml_is_well_formed()执行的验证。 如果值是document,则函数将检查格式良好的XML文档。 如果值是content,则函数检查格式良好的XML内容片段。

Note: 包含文档类型声明(DTD)的XML文档不被视为有效的XML内容片段。 如果xmloption设置为content,则包含DTD的XML不被视为有效的XML。

要将包含DTD的字符串转换为xml数据类型, 请将xmlparse函数与document关键字一起使用, 或将xmloption值更改为document

可以为数据库系统,单个数据库或会话设置该参数。 Greenplum数据库中也提供了为会话设置此选项的SQL命令。
SET XML OPTION { DOCUMENT | CONTENT }
取值范围 默认值 设置分类
document

content

content master

session

reload