一 . 状态监控
1.1 gpstate
命令 参数 作用
gpstate -b => 显示简要状态
gpstate -c => 显示主镜像映射
gpstart -d => 指定数据目录(默认值:$MASTER_DATA_DIRECTORY)
gpstate -e => 显示具有镜像状态问题的片段
gpstate -f => 显示备用主机详细信息
gpstate -i => 显示GRIPLUM数据库版本
gpstate -m => 显示镜像实例同步状态
gpstate -p => 显示使用端口
gpstate -Q => 快速检查主机状态
gpstate -s => 显示集群详细信息
gpstate -v => 显示详细信息
二 . 数据库配置参数调优
gpconfig
2.1 查询参数
gpconfig --show max_connections
2.2 修改参数配置命令
gpconfig-c <parameter name> -v <parameter value>
比如:gpconfig-c log_statement -v DDL
删除配置
gpconfig -r <parameter name>
2.3 其他查询设置参数信息的命令
命令 参数 作用
gpconfig -c => --change param_name 通过在postgresql.conf 文件的底部添加新的设置来改变配置参数的设置。
gpconfig -v => --value value 用于由-c选项指定的配置参数的值。默认情况下,此值将应用于所有Segment及其镜像、Master和后备Master。
gpconfig -m => --mastervalue master_value 用于由-c 选项指定的配置参数的Master值。如果指定,则该值仅适用于Master和后备Master。该选项只能与-v一起使用。
gpconfig -masteronly =>当被指定时,gpconfig 将仅编辑Master的postgresql.conf文件。
gpconfig -r => --remove param_name 通过注释掉postgresql.conf文件中的项删除配置参数。
gpconfig -l => --list 列出所有被gpconfig工具支持的配置参数。
gpconfig -s => --show param_name 显示在Greenplum数据库系统中所有实例(Master和Segment)上使用的配置参数的值。如果实例中参数值存在差异,则工具将显示错误消息。使用-s=>选项运行gpconfig将直接从数据库中读取参数值,而不是从postgresql.conf文件中读取。如果用户使用gpconfig 在所有Segment中设置配置参数,然后运行gpconfig -s来验证更改,用户仍可能会看到以前的(旧)值。用户必须重新加载配置文件(gpstop -u)或重新启动系统(gpstop -r)以使更改生效。
gpconfig --file => 对于配置参数,显示在Greenplum数据库系统中的所有Segment(Master和Segment)上的postgresql.conf文件中的值。如果实例中的参数值存在差异,则工具会显示一个消息。必须与-s选项一起指定。
gpconfig --file-compare 对于配置参数,将当前Greenplum数据库值与主机(Master和Segment)上postgresql.conf文件中的值进行比较。
gpconfig --skipvalidation 覆盖gpconfig的系统验证检查,并允许用户对任何服务器配置参数进行操作,包括隐藏参数和gpconfig无法更改的受限参数。当与-l选项(列表)一起使用时,它显示受限参数的列表。 警告: 使用此选项设置配置参数时要格外小心。
gpconfig --verbose 在gpconfig命令执行期间显示额外的日志信息。
gpconfig --debug 设置日志输出级别为调试级别。
gpconfig -? | -h | --help 显示在线帮助。
2.4 内存参数调优
设置所有运行的查询分配的内存总量。如果查询需要的内存超过此值,则会失败
gpconfig -s gp_vmem_protect_limit
gpconfig -c gp_vmem_protect_limit-v 8192MB
设置数据库上单个查询可以使用的内存总量
gpconfig -s gp_statement_mem
gpconfig -c gp_statement_mem -v 2000MB
设置每个查询在每个segment主机中最大使用的内存量,该参数是防止statement_mem参数设置的内存过大导致的内存溢出.
gpconfig -s max_statement_mem
gpconfig -c max_statement_mem -v 512MB
设置每个查询在每个segment主机中可用的内存,该参数设置的值不能超过max_statement_mem设置的值,如果配置了资源队列,则不能超过资源队列设置的值
gpconfig -s statement_mem
gpconfig -c statement_mem -v 256MB
限制一个查询最多可以创建多少个溢出文件,0 意味着没有限制。限制溢出文件数据可以防止失控查询破坏整个系统,默认情况下,一个SQL查询最多可以创建 100000 个溢出文件,这足以满足大多数查询
gpconfig -s gp_workfile_limit_files_per_query
设置可供于查询缓存的数据内存占用大小,这个数值越大,优化器使用索引的可能性也越大。因此这个数值应该设置成shared_buffers加上可用操作系统缓存两者的总量。通常这个数值会超过系统内存总量的50%以上。
gpconfig -s effective_cache_size
gpconfig -c effective_cache_size -v 40960MB
参考:
https://www.cnblogs.com/pl-boke/p/9852383.html
3. 数据库索引的分类与使用场景
btree索引,建立基于btree的函数索引,bitmap索引,GiST索引
greenplum索引介绍_greenplum 索引匹配原则-CSDN博客
4. 分区表 的使用
Greenplum性能优化之路 --(一)分区表-腾讯云开发者社区-腾讯云
5. 压缩算法与使用场景
Greenplum性能优化之路 --(二)存储格式-腾讯云开发者社区-腾讯云
6.greenplum 收集统计信息
VACUUM VERBOSE ANALYZE tablename;//回收垃圾且收集表统计信息,以便优化器可以选择最佳的物理执行计划。