
# 设置GUC参数
为确保DWS的最优性能，用户可根据业务需求对数据库中的GUC参数进行调整。
#### 参数类型和值
- DWS的GUC参数类型分为以下五类：
  - SUSET，数据库管理员参数。设置后立即生效，无需重启集群。若在当前会话中设置该类型参数仅当前会话生效。
  
  - USERSET，普通用户参数。设置后立即生效，无需重启集群。若在当前会话中设置该类型参数仅当前会话生效。
  
  - POSTMASTER，数据库服务端参数。设置后需要重启集群才能生效，确认修改后系统会提示集群状态为待重启，建议在非业务高峰期手动重启集群，使参数生效。
  
  - SIGHUP，数据库全局参数。设置后全局生效，无法会话级生效。
  
  - BACKEND，数据库全局参数。设置后全局生效，无法会话级生效。
   
- 所有的参数名称不区分大小写。 参数取值有整型、浮点型、字符串、布尔型和枚举型五类。
  - 布尔值可以是（on，off）、（true，false）、（yes，no）或者（1，0），且不区分大小写。
  
  - 枚举类型的取值由系统表pg_settings的enumvals字段取值所定义。
   
- 对于有单位的参数，在设置时请指定单位，否则将使用默认的单位。
  - 参数的默认单位由系统表pg_settings的unit字段所定义。
  
  - 内存单位有：KB（千字节）、MB（兆字节）和GB（吉字节）。
  
  - 时间单位：ms（毫秒）、s（秒）、min（分钟）、h（小时）和d（天）。
   
 
#### GUC参数设置
GUC参数设置有两种方式：
- 方式一：集群创建成功后，用户可以登录[DWS控制台](https://console.huaweicloud.com/dws)，根据实际需要修改集群的数据库参数。 具体操作请参见[修改DWS集群GUC参数](https://support.huaweicloud.com/mgtg-dws/dws_01_0152.html)。
- 方式二：成功连接集群后，通过SQL命令的方式设置SUSET或USERSET类型的参数。 修改指定数据库，用户，会话级别的参数。
  - 设置数据库级别的参数
    ```
    ALTER DATABASE dbname SET parameter_name TO value;
    ```
    在下次会话中生效。
    
  
  - 设置用户级别的参数
    ```
    ALTER USER username SET parameter_name TO value;
    ```
    在下次会话中生效。
    
  
  - 设置会话级别的参数
    ```
    SET parameter_name TO value;
    ```
    修改本次会话中的取值。退出会话后，设置将失效。
    
   
 
#### 操作步骤
设置参数，以设置explain_perf_mode参数为例。
1. 查看explain_perf_mode参数。 
   ```
   SHOW explain_perf_mode;
    explain_perf_mode 
   -------------------
    normal
   (1 row)
   ```
   
   
2. 设置explain_perf_mode参数。 
   使用以下任意方式进行设置：
   - 设置数据库级别的参数
     ```
     ALTER DATABASE gaussdb SET explain_perf_mode TO pretty;
     ```
     当结果显示为如下信息，则表示设置成功。
     ```
     ALTER DATABASE
     ```
     在下次会话中生效。
     
   
   - 设置用户级别的参数
     ```
     ALTER USER dbadmin SET explain_perf_mode TO pretty;
     ```
     当结果显示为如下信息，则表示设置成功。
     ```
     ALTER USER
     ```
     在下次会话中生效。
     
   
   - 设置会话级别的参数
     ```
     SET explain_perf_mode TO pretty;
     ```
     当结果显示为如下信息，则表示设置成功。
     ```
     SET
     ```
     
   
   
   
   
3. 检查参数设置的正确性。 
   ```
   SHOW explain_perf_mode;
    explain_perf_mode
   --------------
    pretty
   (1 row)
   ```
   
   
 
