Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

force_* 会话设置

这些设置可在 system.settings 中查看,并由 源代码 自动生成。

force_aggregate_partitions_independently

类型
Bool
默认值
0

在适用的情况下强制使用该优化,即使启发式规则判断不使用它

force_aggregation_in_order

类型
Bool
默认值
0

该设置由服务器自身使用,用于支持分布式查询。请勿手动更改,否则会破坏正常运行。 (在分布式聚合期间,强制远程节点使用按顺序聚合。)

force_creating_set_partitions_independently

类型
Bool
默认值
0
版本历史
版本默认值注释
26.80新增设置:即使分区倾斜检查会跳过,也强制在构建 `IN (subquery)` Set 时对每个分区进行预去重。

当按分区预去重适用,但分区倾斜检查 (最大分区超过平均值的两倍) 决定不使用时,强制在构建 IN (subquery) Set 时对每个分区进行预去重。仅绕过 allow_creating_set_partitions_independently 的倾斜检查;其余条件仍然适用。

force_data_skipping_indices

如果传入的数据跳过索引未被使用,则禁止查询执行。

请看以下示例:

CREATE TABLE data
(
    key Int,
    d1 Int,
    d1_null Nullable(Int),
    INDEX d1_idx d1 TYPE minmax GRANULARITY 1,
    INDEX d1_null_idx assumeNotNull(d1_null) TYPE minmax GRANULARITY 1
)
Engine=MergeTree()
ORDER BY key;

SELECT * FROM data_01515;
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices=''; -- query will produce CANNOT_PARSE_TEXT error.
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices='d1_idx'; -- query will produce INDEX_NOT_USED error.
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='d1_idx'; -- Ok.
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`'; -- Ok (example of full featured parser).
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- query will produce INDEX_NOT_USED error, since d1_null_idx is not used.
SELECT * FROM data_01515 WHERE d1 = 0 AND assumeNotNull(d1_null) = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- Ok.

force_distinct_partitions_independently

类型
Bool
默认值
0
版本历史
版本默认值注释
26.80新增设置:即使成本启发式算法会跳过,也强制按分区独立评估 `DISTINCT`。

当按分区独立评估 DISTINCT 适用,但成本启发式算法决定不使用时,强制启用该评估。此设置仅绕过 allow_distinct_partitions_independently 的成本启发式算法;其余条件仍然适用。

force_grouping_standard_compatibility

类型
Bool
默认值
1
版本历史
版本默认值注释
22.91使 GROUPING 函数的返回值与 SQL 标准及其他 DBMS 一致

使 GROUPING 函数在参数未用作聚合键时返回 1

force_index_by_date

类型
Bool
默认值
0

如果查询不能利用日期索引,则禁用查询执行。

适用于 MergeTree 家族中的表。

如果 force_index_by_date=1,ClickHouse 会检查查询是否包含可用于限制数据范围的日期键条件。如果没有合适的条件,则会抛出异常。不过,它不会检查该条件是否减少了需要读取的数据量。例如,条件 Date != ' 2000-01-01 ' 是允许的,即使它会匹配表中的所有数据 (也就是说,运行该查询需要全表扫描) 。有关 MergeTree 表中数据范围的更多信息,请参见 MergeTree

force_primary_key

类型
Bool
默认值
0

如果无法利用主键进行索引,则禁用查询执行。

适用于 MergeTree 家族中的表。

如果 force_primary_key=1,ClickHouse 会检查查询是否包含可用于限制数据范围的主键条件。如果没有合适的条件,则会抛出异常。不过,它不会检查该条件是否会减少需要读取的数据量。有关 MergeTree 表中数据范围的更多信息,请参见 MergeTree

force_read_through_distributed_cache

仅限 ClickHouse Cloud
类型
BoolAuto
默认值
auto
版本历史
版本默认值注释
26.9auto新增设置,可针对单个查询覆盖服务器设置 `enable_read_through_distributed_cache`。
26.8auto新增设置,可针对单个查询覆盖服务器设置 `enable_read_through_distributed_cache`。

仅在 ClickHouse Cloud 中生效。可针对单个查询覆盖服务器设置 enable_read_through_distributed_cacheauto (默认值) 表示沿用服务器设置。

force_remove_data_recursively_on_drop

类型
Bool
默认值
0

在执行 DROP 查询时递归删除数据。可避免“Directory not empty”错误,但也可能在无提示的情况下删除 detached 数据

force_window_partitions_independently

类型
Bool
默认值
0
版本历史
版本默认值注释
26.80新增设置:即使成本启发式算法决定跳过,也强制按分区独立计算窗口函数。

当满足适用条件但成本启发式算法决定不采用时,强制按分区独立计算窗口函数。仅绕过 allow_window_partitions_independently 的成本启发式算法;其余条件仍然适用。

force_write_through_distributed_cache

仅限 ClickHouse Cloud
类型
BoolAuto
默认值
auto
版本历史
版本默认值注释
26.9auto用于针对单个查询覆盖服务器设置 `enable_write_through_distributed_cache` 的新增设置。
26.8auto用于针对单个查询覆盖服务器设置 `enable_write_through_distributed_cache` 的新增设置。

仅在 ClickHouse Cloud 中生效。可针对单个查询覆盖服务器设置 enable_write_through_distributed_cacheauto (默认值) 表示遵循服务器设置。

Navigation