Greenplum的参数详解

0    51    1

Tags:

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

目录
本页目录 隐藏

配置参数

按字母顺序列出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数据库才能使更改生效。

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

标签:

Avatar photo

小麦苗

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

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部