Greenplum的参数详解

0    193    1

Tags:

👉 本文共约97388个字,系统预计阅读时间或需367分钟。

目录

配置参数

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

application_name
array_nulls
authentication_timeout
backslash_quote
block_size
bonjour_name
check_function_bodies
client_encoding
client_min_messages
cpu_index_tuple_cost
cpu_operator_cost
cpu_tuple_cost
cursor_tuple_fraction
data_checksums
DateStyle
db_user_namespace
deadlock_timeout
debug_assertions
debug_pretty_print
debug_print_parse
debug_print_plan
debug_print_prelim_plan
debug_print_rewritten
debug_print_slice_table
default_statistics_target
default_tablespace
default_text_search_config
#default_transction_deferrable
default_transaction_isolation
default_transaction_read_only
dynamic_library_path
effective_cache_size
enable_bitmapscan
enable_groupagg
enable_hashagg
enable_hashjoin
enable_indexscan
enable_mergejoin
enable_nestloop
enable_seqscan
enable_sort
enable_tidscan
escape_string_warning
explain_pretty_print
extra_float_digits
from_collapse_limit
gp_adjust_selectivity_for_outerjoins
gp_appendonly_compaction
gp_appendonly_compaction_threshold
gp_autostats_mode
gp_autostats_mode_in_functions
gp_autostats_on_change_threshold
gp_cached_segworkers_threshold
gp_command_count
gp_connection_send_timeout
gp_content
gp_create_table_random_default_distribution
gp_dbid
gp_debug_linger
gp_default_storage_options
gp_dynamic_partition_pruning
gp_enable_adaptive_nestloop
gp_enable_agg_distinct
gp_enable_agg_distinct_pruning
gp_enable_direct_dispatch
gp_enable_exchange_default_partition
gp_enable_fast_sri
gp_enable_global_deadlock_detector
gp_enable_gpperfmon
gp_enable_groupext_distinct_gather
gp_enable_groupext_distinct_pruning
gp_enable_multiphase_agg
gp_enable_predicate_propagation
gp_enable_preunique
gp_enable_query_metrics
gp_enable_relsize_collection
gp_enable_segment_copy_checking
gp_enable_sort_distinct
gp_enable_sort_limit
gp_external_enable_exec
gp_external_max_segs
gp_external_enable_filter_pushdown
gp_fts_probe_interval
gp_fts_probe_retries
gp_fts_probe_threadcount
gp_fts_probe_timeout
gp_global_deadlock_detector_period
gp_gpperfmon_send_interval
gpperfmon_log_alert_level
gp_hashjoin_tuples_per_bucket | gp_ignore_error_table (不推荐使用)
gp_initial_bad_row_limit
gp_instrument_shmem_size
gp_interconnect_debug_retry_interval
gp_interconnect_fc_method
gp_interconnect_hash_multiplier
gp_interconnect_queue_depth
gp_interconnect_setup_timeout
gp_interconnect_snd_queue_depth
gp_interconnect_type
gp_log_format
gp_log_fts
gp_log_interconnect
gp_log_gang
gp_max_local_distributed_cache
gp_max_packet_size
gp_max_plan_size
gp_max_slices
gp_motion_cost_per_row
gp_recursive_cte
gp_reject_percent_threshold
gp_reraise_signal
gp_resgroup_memory_policy
gp_resource_group_bypass
gp_resource_group_cpu_limit
gp_resource_group_memory_limit
gp_resource_manager
gp_resqueue_memory_policy
gp_resqueue_priority
gp_resqueue_priority_cpucores_per_segment
gp_resqueue_priority_sweeper_interval
gp_role
gp_safefswritesize
gp_segment_connect_timeout
gp_segments_for_planner
gp_server_version
gp_server_version_num
gp_session_id
gp_set_proc_affinity
gp_set_read_only
gp_statistics_pullup_from_child_partition
gp_statistics_use_fkeys
gp_use_legacy_hashops
gp_vmem_idle_resource_timeout
gp_vmem_protect_limit
gp_vmem_protect_segworker_cache_limit
gp_workfile_compression
gp_workfile_limit_files_per_query
gp_workfile_limit_per_query
gp_workfile_limit_per_segment
gpperfmon_port
ignore_checksum_failure
integer_datetimes
IntervalStyle
join_collapse_limit
keep_wal_segments
krb_caseins_users
krb_server_keyfile
lc_collate
lc_ctype
lc_messages
lc_monetary
lc_numeric
lc_time
listen_addresses
local_preload_libraries
lock_timeout
log_autostats
log_connections
log_disconnections
log_dispatch_stats
log_duration
log_error_verbosity
log_executor_stats
log_hostname
log_min_duration_statement
log_min_error_statement
log_min_messages
log_parser_stats
log_planner_stats
log_rotation_age
log_rotation_size
log_statement
log_statement_stats
log_temp_files
log_timezone
log_truncate_on_rotation
maintenance_work_mem
max_appendonly_tables
max_connections | max_files_per_process
max_function_args
max_identifier_length
max_index_keys
max_locks_per_transaction
max_prepared_transactions
max_resource_portals_per_transaction
max_resource_queues
max_stack_depth
max_statement_mem
memory_spill_ratio
optimizer
optimizer_array_expansion_threshold
optimizer_analyze_root_partition
optimizer_control
optimizer_cte_inlining_bound
optimizer_enable_associativity
optimizer_enable_master_only_queries
optimizer_force_agg_skew_avoidance
optimizer_force_multistage_agg
optimizer_force_three_stage_scalar_dqa
optimizer_join_arity_for_associativity_commutativity
optimizer_join_order
optimizer_join_order_threshold
optimizer_mdcache_size
optimizer_metadata_caching
optimizer_minidump
optimizer_nestloop_factor
optimizer_parallel_union
optimizer_print_missing_stats
optimizer_print_optimization_stats
optimizer_sort_factor
password_encryption
password_hash_algorithm
pljava_classpath
pljava_classpath_insecure
pljava_statement_cache_size
pljava_release_lingering_savepoints
pljava_vmoptions
port
random_page_cost
readable_external_table_timeout
repl_catchup_within_range
replication_timeout
regex_flavor
resource_cleanup_gangs_on_wait
resource_select_only
runaway_detector_activation_percent
search_path
seq_page_cost
server_encoding
server_version
server_version_num
shared_buffers
shared_preload_libraries
ssl
ssl_ciphers
standard_conforming_strings
statement_mem
statement_timeout
stats_queue_level
superuser_reserved_connections
tcp_keepalives_count
tcp_keepalives_idle
tcp_keepalives_interval
temp_buffers
TimeZone
timezone_abbreviations
track_activity_query_size
transaction_isolation
transaction_read_only
transform_null_equals
unix_socket_directory
unix_socket_group
unix_socket_permissions
update_process_title
vacuum_cost_delay
vacuum_cost_limit
vacuum_cost_page_dirty
vacuum_cost_page_hit
vacuum_cost_page_miss
vacuum_freeze_min_age
validate_previous_free_tid
verify_gpfdists_cert
vmem_process_interrupt
wal_receiver_status_interval
writable_external_table_bufsize
xid_stop_limit
xid_warn_limit
xmlbinary
xmloption

application_name

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

取值范围默认值设置分类
stringmaster
session
reload

array_nulls

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

取值范围默认值设置分类
Booleanonmaster
session
reload

authentication_timeout

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

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

backslash_quote

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

取值范围默认值设置分类
on(总是允许 \’)off(总是拒绝)safe_encoding(只有客户端编码不允许多字节中的ASCII字符\才允许)safe_encodingmaster
session
reload

block_size

报告磁盘块大小。

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

bonjour_name

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

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

check_function_bodies

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

取值范围默认值设置分类
Booleanonmaster
session
reload

client_encoding

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

取值范围默认值设置分类
字符集UTF8master
session
reload

client_min_messages

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

取值范围默认值设置分类
DEBUG5DEBUG4DEBUG3DEBUG2DEBUG1LOGNOTICEWARNINGERRORFATALPANICNOTICEmaster
session
reload

cpu_index_tuple_cost

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

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

cpu_operator_cost

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

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

cpu_tuple_cost

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

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

cursor_tuple_fraction

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

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

data_checksums

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

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

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

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

取值范围默认值设置分类
Booleanonread only

DateStyle

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

取值范围默认值设置分类
, 其中: 是ISO, Postgres, SQL或German 是DMY, MDY或 YMDISO, MDYmaster
session
reload

db_user_namespace

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

取值范围默认值设置分类
Booleanofflocal
system
restart

deadlock_timeout

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

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

debug_assertions

打开各种断言检查。

取值范围默认值设置分类
Booleanofflocal
system
restart

debug_pretty_print

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

取值范围默认值设置分类
Booleanonmaster
session
reload

debug_print_parse

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

debug_print_plan

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

debug_print_prelim_plan

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

debug_print_rewritten

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

debug_print_slice_table

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

default_statistics_target

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

取值范围默认值设置分类
0 < 整数 < 10000100master
session
reload

default_tablespace

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

取值范围默认值设置分类
表空间的名字unsetmaster
session
reload

default_text_search_config

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

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

default_transaction_deferrable

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

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

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

default_transaction_isolation

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

取值范围默认值设置分类
read committedread uncommittedrepeatable readserializableread committedmaster
session
reload

default_transaction_read_only

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

dynamic_library_path

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

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

effective_cache_size

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

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

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

enable_bitmapscan

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

取值范围默认值设置分类
Booleanonmaster
session
reload

enable_groupagg

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

取值范围默认值设置分类
Booleanonmaster
session
reload

enable_hashagg

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

取值范围默认值设置分类
Booleanonmaster
session
reload

enable_hashjoin

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

取值范围默认值设置分类
Booleanonmaster
session
reload

enable_indexscan

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

取值范围默认值设置分类
Booleanonmaster
session
reload

enable_mergejoin

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

enable_nestloop

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

enable_seqscan

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

取值范围默认值设置分类
Booleanonmaster
session
reload

enable_sort

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

取值范围默认值设置分类
Booleanonmaster
session
reload

enable_tidscan

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

取值范围默认值设置分类
Booleanonmaster
session
reload

escape_string_warning

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

取值范围默认值设置分类
Booleanonmaster
session
reload

explain_pretty_print

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

取值范围默认值设置分类
Booleanonmaster
session
reload

extra_float_digits

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

取值范围默认值设置分类
integer0master
session
reload

from_collapse_limit

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

取值范围默认值设置分类
1-n20master
session
reload

gp_adjust_selectivity_for_outerjoins

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_appendonly_compaction

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_appendonly_compaction_threshold

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

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

gp_autostats_mode

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

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

CREATE TABLE AS SELECT

UPDATE

DELETE

INSERT

COPY

默认值是on_no_stats。

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

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

取值范围默认值设置分类
noneon*change*on_no_statson_no statsmaster
session
reload

gp_autostats_mode_in_functions

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

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

CREATE TABLE AS SELECT

UPDATE

DELETE

INSERT

COPY

取值范围默认值设置分类
noneon_changeon_no_statsnonemaster
session
reload

gp_autostats_on_change_threshold

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

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

gp_cached_segworkers_threshold

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

取值范围默认值设置分类
整数 > 05master
session
reload

gp_command_count

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

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

gp_connection_send_timeout

在查询处理期间向无响应的Greenplum数据库用户客户端发送数据的超时。 值为0将禁用超时,Greenplum数据库将无限期地等待客户端。 达到超时后,将使用以下消息取消查询:

取值范围默认值设置分类
秒数3600 (1小时)mastersystemreload

gp_content

Segment的本地内容ID。

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

gp_create_table_random_default_distribution

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

对于CREATE TABLE,如果参数的值为off(缺省值), 并且创建表命令不包含DISTRIBUTED BY子句,Greenplum数据库将根据以下命令选择表分布键:

  • 如果指定了LIKE或INHERITS子句,则Greenplum将从源表或父表复制分布键。
  • 如果指定了PRIMARY KEY或UNIQUE约束,则Greenplum会选择所有键列的最大子集作为分布键。
  • 如果既没有指定约束也没有指定LIKE或INHERITS子句,则Greenplum选择第一个合适的列作为分布键。 (具有几何或用户定义数据类型的列不符合Greenplum分布键列的条件。)

如果参数的值设置为on,则当未指定DISTRIBUTED BY子句时,Greenplum数据库将遵循这些规则来创建表:

  • 如果未指定PRIMARY KEY或UNIQUE列,则表的分布是随机的(DISTRIBUTED RANDOMLY)。 即使表创建命令包含LIKE或INHERITS子句,表分发也是随机的。
  • 如果指定了PRIMARY KEY或UNIQUE列,则还必须指定DISTRIBUTED BY子句。 如果未将DISTRIBUTED BY子句指定为表创建命令的一部分,则该命令将失败。

对于不包含分布子句的CREATE TABLE AS命令:

  • 如果Postgres查询优化器创建表,并且参数的值为off,则根据该命令确定表分发策略。
  • 如果Postgres查询优化器创建表,并且参数的值为on,则表分发策略是随机的。
  • 如果GPORCA创建表,则表分发策略是随机的。 参数值没有影响。

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

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

gp_dbid

对于segment,则为本地dbid。

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

gp_debug_linger

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

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

gp_default_storage_options

使用CREATE TABLE命令创建表时,设置以下表存储选项的默认值。

  • appendoptimized

    Note: 您可以使用appendoptimized=value语法指定追加优化的表存储类型。 appendoptimized是appendonly传统存储选项的精简别名。 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的值

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

此示例ALTER DATABASE命令为数据库mytest设置默认orientation和compresstype表存储选项。

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

此示例gpconfig工具命令设置Greenplum数据库系统的默认存储选项。 如果为多个表存储选项设置默认值,则该值必须用单引号括起来。

此示例gpconfig工具命令显示参数的值。 参数值必须在Greenplum数据库主数据库和所有segment之间保持一致。

取值范围默认值设置分类 1
appendoptimized= TRUE | FALSEblocksize= integer between 8192 and 2097152checksum= TRUE | FALSEcompresstype= ZLIB | ZSTD | QUICKLZ2 | RLE_TYPE | NONEcompresslevel= integer between 0 and 19orientation= ROW | COLUMNappendoptimized=FALSEblocksize=32768checksum=TRUEcompresstype=nonecompresslevel=0orientation=ROWmaster
session
reload

Note: 1当参数使用gpconfig工具设置在系统级时,为集合分类。

Note: 2QuickLZ 压缩仅在Pivotal Greenplum数据库的商业版本中可用。

gp_dynamic_partition_pruning

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

取值范围默认值设置分类
on/offonmaster
session
reload

gp_enable_adaptive_nestloop

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_enable_agg_distinct

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_enable_agg_distinct_pruning

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_enable_direct_dispatch

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

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

gp_enable_exchange_default_partition

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

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

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

gp_enable_fast_sri

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_enable_global_deadlock_detector

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

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

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

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

gp_enable_gpperfmon

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

取值范围默认值设置分类
Booleanofflocal
system
restart

gp_enable_groupext_distinct_gather

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_enable_groupext_distinct_pruning

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_enable_multiphase_agg

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_enable_predicate_propagation

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_enable_preunique

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

取值范围默认值设置分类
Booleanonmaster
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数据库。

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

gp_enable_relsize_collection

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

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

取值范围默认值设置分类
Booleanoffmaster
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.

取值范围默认值设置分类
Booleantruemaster
session
reload

gp_enable_sort_distinct

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_enable_sort_limit

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_external_enable_exec

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

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

gp_external_max_segs

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

取值范围默认值设置分类
integer64master
session
reload

gp_external_enable_filter_pushdown

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_fts_probe_interval

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

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

gp_fts_probe_retries

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

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

gp_fts_probe_threadcount

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

取值范围默认值设置分类
1 - 12816mastersystemrestart

gp_fts_probe_timeout

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

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

gp_global_deadlock_detector_period

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

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

gp_log_fts

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

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

gp_log_interconnect

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

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

取值范围默认值设置分类
offterseverbosedebugtersemaster
session
reload

gp_log_gang

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

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

gp_gpperfmon_send_interval

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

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

gpperfmon_log_alert_level

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

Note: 如果安装了gpperfmon数据库并且正在监视数据库,则默认值为warning。

取值范围默认值设置分类
nonewarningerrorfatalpanicnonelocal
system
restart

gp_hashjoin_tuples_per_bucket

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

取值范围默认值设置分类
integer5master
session
reload

gp_ignore_error_table (不推荐使用)

在CREATE EXTERNAL TABLE或COPY命令中指定不推荐使用的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 TABLE或COPY命令的应用程序时出现Greenplum数据库错误。

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

取值范围默认值设置分类
Booleanfalsemaster
session
reload

gp_initial_bad_row_limit

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

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

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

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

取值范围默认值设置分类
整数 0 - INT_MAX1000master
session
reload

gp_instrument_shmem_size

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

取值范围默认值设置分类
整数0 - 1310725120mastersystemrestart

gp_interconnect_debug_retry_interval

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

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

取值范围默认值设置分类
1 =< 整数 < 409610master
session
reload

gp_interconnect_fc_method

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

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

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

取值范围默认值设置分类
CAPACITYLOSSLOSSmaster
session
reload

gp_interconnect_hash_multiplier

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

取值范围默认值设置分类
2-252master
session
reload

gp_interconnect_queue_depth

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

取值范围默认值设置分类
1-20484master
session
reload

gp_interconnect_setup_timeout

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

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

gp_interconnect_snd_queue_depth

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

取值范围默认值设置分类
1 - 40962master
session
reload

gp_interconnect_type

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

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

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

取值范围默认值设置分类
UDPIFCTCPUDPIFClocal
system
restart

gp_log_format

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

取值范围默认值设置分类
csvtextcsvlocal
system
restart

gp_max_local_distributed_cache

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

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

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

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

gp_max_packet_size

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

取值范围默认值设置分类
512-655368192mastersystemrestart

gp_max_plan_size

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

您可以指定以kB,MB或GB为单位的值。 默认单位是kB。 例如,值200是200kB。 值1GB与1024MB或1048576kB相同。

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

gp_max_slices

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

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

取值范围默认值设置分类
0 - INT_MAX0master
session
reload

gp_motion_cost_per_row

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

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

gp_recursive_cte

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

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

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

Note: 此参数之前名为gp_recursive_cte_prototype,但已重命名以反映实现的当前状态。

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

gp_reject_percent_threshold

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

取值范围默认值设置分类
1-n300master
session
reload

gp_reraise_signal

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_resgroup_memory_policy

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

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

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

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

取值范围默认值设置分类
auto, eager_freeeager_freelocalsystemsuperuserrestart/reload

gp_resource_group_bypass

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

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

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

将此参数设置为true并运行查询时,查询将在此环境中运行:

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

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

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

gp_resource_group_cpu_limit

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

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

取值范围默认值设置分类
0.1 - 1.00.9local
system
restart

gp_resource_group_memory_limit

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

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

取值范围默认值设置分类
0.1 - 1.00.7local
system
restart

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

例如,假设您的Greenplum数据库群集使用默认的gp_resource_group_memory_limit为0.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在这种情况下的总体内存分配是

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

gp_resource_manager

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

取值范围默认值设置分类
groupqueuequeuelocal
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_freeeager_freelocal
system
restart/reload

gp_resqueue_priority

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

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

取值范围默认值设置分类
Booleanonlocal
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.04local
system
restart

gp_resqueue_priority_sweeper_interval

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

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

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

gp_role

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

取值范围默认值设置分类
dispatchexecuteutilityread only

gp_safefswritesize

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

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

gp_segment_connect_timeout

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

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

gp_segments_for_planner

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

取值范围默认值设置分类
0-n0master
session
reload

gp_server_version

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

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

gp_server_version_num

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

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

gp_session_id

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

取值范围默认值设置分类
1-n14read only

gp_set_proc_affinity

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

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

gp_set_read_only

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

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

gp_statistics_pullup_from_child_partition

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

取值范围默认值设置分类
Booleanonmaster
session
reload

gp_statistics_use_fkeys

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

gp_use_legacy_hashops

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

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

取值范围默认值设置分类
Booleanfalsemaster
session
reload

gp_vmem_idle_resource_timeout

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

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

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数据库内存

其中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的计算。

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

根据gp_vmem值,您可以计算vm.overcommit_ratio操作系统内核参数的值。 配置每个Greenplum数据库主机时,将设置此参数。

Note: Red Hat Enterprise Linux中内核参数vm.overcommit_ratio的默认值为50。

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

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

gp_vmem_protect_segworker_cache_limit

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

取值范围默认值设置分类
MB500local
system
restart

gp_workfile_compression

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

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

取值范围默认值设置分类
Booleanoffmaster
session
reload

gp_workfile_limit_files_per_query

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

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

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复