---
title: 数据库参数优化
description: "通过调整数据库的参数配置，可以有效提升服务器性能。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/ecosystemEnable/Greenplum/kunpengdbstune_05_0033.html
sourcePath: /source/zh/kunpengdbs/ecosystemEnable/Greenplum/kunpengdbstune_05_0033.html
indexId: c551c95cf17065970f9d4440be89482ddfe14b8b6a98e00ac9bf26f4947c8d3875
---
# 数据库参数优化

#### 目的

通过调整数据库的参数配置，可以有效提升服务器性能。


#### 方法


**表1 数据库调优参数**

| 参数名称 | 参数含义 | 优化建议 |
| --- | --- | --- |
| gp\_vmem\_protect\_limit | 每个Segment数据库为所有运行的查询分配的内存总量。 | 每个节点的物理内存/每个节点primary Segment数量。 |
| shared\_buffers | 磁盘读写的内存缓冲区。 | 不宜设置过大。 |
| effective\_cache\_size | 设置优化器假设磁盘高速缓存的大小用于查询语句的执行计划判断，主要用于判断使用索引的成本。 | 设置越大，优化器越倾向于走索引。 |
| work\_mem | 设置每个Segment内存排序的大小。 | work\_mem大小根据每个节点上的active Segment设置，设置过大将导致swap。 |
| temp\_buffers | 临时缓冲区，供数据库访问临时数据。 | 当需要访问大的临时表时，适当增加参数设置，可提升性能。 |
| gp\_fts\_probe\_threadcount | 故障检测的线程数。 | 大于等于每个节点的Segment数。 |
| gp\_hashjoin\_tuples\_per\_bucket | 使用Hashjoin操作设置哈希表的目标密度。 | 此参数越小，hash\_tables越大，可提升join性能。 |
| gp\_interconnect\_setup\_timeout | 指定等待Greenplum数据库互连在超时之前完成设置的时间量。 | 在负载较大的环境中，应该设置较大的值。 |
| gp\_statement\_mem | 控制Segment数据库上单个查询可以使用的内存总量。 | 建议(gp\_vmem\_protect\_limit\*0.9) /Segment数据库上最大查询数。 |
| gp\_workfile\_limit\_files\_per\_query | 如果SQL查询分配的内存不足，Greenplum会创建溢出文件，该参数控制一个查询可以创建多少个溢出文件。 | 超出溢出文件上限时，建议先优化SQL，数据分布策略及内存配置。 |
| max\_connections | 最大连接数。 | Segment建议设置成Master的5～10倍。 |
| gp\_set\_proc\_affinity | 控制Master节点进程和Segment节点进程的CPU亲和性 | 建议设置成on，数据库在启动时自动进行绑核优化。 |
