配置参数管理

Vertica 支持一系列影响数据库多个方面行为的配置参数。通过在一个或多个级别使用适当的 ALTER 语句,可以设置这些参数。以下按优先级降序对其进行排列:

  1. 用户 (ALTER USER)

  2. 会话 (ALTER SESSION)

  3. 节点 (ALTER NODE)

  4. 数据库 (ALTER DATABASE)

您可以查询系统表 CONFIGURATION_PARAMETERS,获取所有用户可访问参数的当前设置。例如,以下查询获取分区参数的设置:它们的当前值和默认值、可以设置的级别,以及更改后是否需要重新启动数据库才能生效:

=> SELECT parameter_name, current_value, default_value, allowed_levels, change_requires_restart FROM configuration_parameters
     WHERE parameter_name ILIKE '%partition%';
           parameter_name           | current_value | default_value | allowed_levels | change_requires_restart
------------------------------------+---------------+---------------+----------------+-------------------------
 MaxPartitionCount                  | 1024          | 1024          | NODE, DATABASE | f
 PartitionSortBufferSize            | 67108864      | 67108864      | DATABASE       | f
 DisableAutopartition               | 0             | 0             | SESSION, USER  | f
 PatternMatchingMaxPartitionMatches | 3932160       | 3932160       | NODE, DATABASE | f
 PatternMatchingMaxPartition        | 20971520      | 20971520      | NODE, DATABASE | f
 ActivePartitionCount               | 1             | 1             | NODE, DATABASE | f
(6 rows)

有关按类别分组的各个配置参数的详细信息,请参阅配置参数

设置和清除配置参数

您可以使用适当的 ALTER 语句更改特定的配置参数。这些语句还允许您将配置参数重置为其默认值。例如,以下 ALTER 语句将数据库级别的 ActivePartitionCount 从 1 更改为 2,将会话级别的 DisablePartitionCount 从 0 更改为 1:

=> ALTER DATABASE DEFAULT SET ActivePartitionCount = 2;
ALTER DATABASE
=> ALTER SESSION SET DisableAutopartition = 1;
ALTER SESSION
=> SELECT parameter_name, current_value, default_value FROM configuration_parameters
      WHERE parameter_name IN ('ActivePartitionCount', 'DisableAutopartition');
    parameter_name    | current_value | default_value
----------------------+---------------+---------------
 ActivePartitionCount | 2             | 1
 DisableAutopartition | 1             | 0
(2 rows)

您可以稍后将这些配置参数重置为默认值:

=> ALTER DATABASE DEFAULT CLEAR ActivePartitionCount;
ALTER DATABASE
=> ALTER SESSION CLEAR DisableAutopartition;
ALTER DATABASE
=> SELECT parameter_name, current_value, default_value FROM configuration_parameters
      WHERE parameter_name IN ('ActivePartitionCount', 'DisableAutopartition');
    parameter_name    | current_value | default_value
----------------------+---------------+---------------
 DisableAutopartition | 0             | 0
 ActivePartitionCount | 1             | 1
(2 rows)

本节内容