更新时间:2022-07-29 GMT+08:00

设置GUC参数

背景信息

GaussDB(DWS)提供了修改GUC参数的方法,用户可以针对数据库、用户、会话进行设置。

  • 参数名称不区分大小写。
  • 参数取值有整型、浮点型、字符串、布尔型和枚举型五类。
    • 布尔值可以是(on,off)、(true,false)、(yes,no)或者(1,0),且不区分大小写。
    • 枚举类型的取值是在系统表pg_settings的enumvals字段取值定义的。
  • 对于有单位的参数,在设置时请指定单位,否则将使用默认的单位。
    • 参数的默认单位在系统表pg_settings的unit字段定义的。
    • 内存单位有:KB(千字节)、MB(兆字节)和GB(吉字节)。
    • 时间单位:ms(毫秒)、s(秒)、min(分钟)、h(小时)和d(天)。
  • CN和DN参数可以同时进行设置,其他类型的参数不能同时进行设置。

GUC参数设置

GUC参数设置有两种方式:

  • 方式一:集群创建成功后,用户可以登录GaussDB(DWS) 管理控制台,根据实际需要修改集群的数据库参数。 具体操作请参见《数据仓库服务用户指南》中的“修改数据库参数”章节。
  • 方式二:成功连接集群后,通过SQL命令的方式设置SUSET或USERSET类型的参数。
    • SUSET参数类型,为数据库管理员参数。可在数据库启动时、数据库启动后或者数据库管理员通过SQL进行设置。
    • 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)