更新时间:2024-10-10 GMT+08:00

设置GUC参数

为确保GaussDB(DWS)的最优性能,用户可根据业务需求对数据库中的GUC参数进行调整。

参数类型和值

  • GaussDB(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参数设置有两种方式:

  • 方式一:集群创建成功后,用户可以登录GaussDB(DWS) 管理控制台,根据实际需要修改集群的数据库参数。

    具体操作请参见“修改数据库参数”章节。

  • 方式二:成功连接集群后,通过SQL命令的方式设置SUSET或USERSET类型的参数。

    修改指定数据库,用户,会话级别的参数。

    • 设置数据库级别的参数
      1
      ALTER DATABASE dbname SET paraname TO value;
      

      在下次会话中生效。

    • 设置用户级别的参数
      1
      ALTER USER username SET paraname TO value;
      

      在下次会话中生效。

    • 设置会话级别的参数
      1
      SET paraname TO value;
      

      修改本次会话中的取值。退出会话后,设置将失效。

操作步骤

设置参数,以设置explain_perf_mode参数为例。

  1. 查看explain_perf_mode参数。

    1
    2
    3
    4
    5
    SHOW explain_perf_mode;
     explain_perf_mode 
    -------------------
     normal
    (1 row)
    

  2. 设置explain_perf_mode参数。

    使用以下任意方式进行设置:

    • 设置数据库级别的参数
      1
      ALTER DATABASE gaussdb SET explain_perf_mode TO pretty;
      

      当结果显示为如下信息,则表示设置成功。

      ALTER DATABASE

      在下次会话中生效。

    • 设置用户级别的参数
      1
      ALTER USER dbadmin SET explain_perf_mode TO pretty;
      

      当结果显示为如下信息,则表示设置成功。

      ALTER USER

      在下次会话中生效。

    • 设置会话级别的参数
      1
      SET explain_perf_mode TO pretty;
      

      当结果显示为如下信息,则表示设置成功。

      SET

  3. 检查参数设置的正确性。

    1
    2
    3
    4
    5
    SHOW explain_perf_mode;
     explain_perf_mode
    --------------
     pretty
    (1 row)