> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# force_* 세션 설정

> force_* 그룹에 속한 ClickHouse 세션 설정입니다.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>유형</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>기본값</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          재시작 없이 변경 가능
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

이 설정은 [system.settings](/docs/ko/reference/system-tables/settings)에서 확인할 수 있으며, [source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp)를 기반으로 자동 생성됩니다.

<div id="force_aggregate_partitions_independently">
  ## force\_aggregate\_partitions\_independently
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

최적화를 적용할 수 있지만 휴리스틱에 따라 사용하지 않도록 결정된 경우에도, 해당 최적화를 강제로 사용합니다

<div id="force_aggregation_in_order">
  ## force\_aggregation\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

이 설정은 서버 자체에서 분산 쿼리를 지원하기 위해 사용됩니다. 정상 동작에 문제가 발생할 수 있으므로 수동으로 변경하지 마십시오. (분산 집계 중 원격 노드에서 aggregation in order를 강제로 사용합니다).

<div id="force_data_skipping_indices">
  ## force\_data\_skipping\_indices
</div>

지정한 데이터 스키핑 인덱스가 사용되지 않으면 쿼리 실행을 비활성화합니다.

다음 예시를 살펴보십시오:

```sql theme={null}
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.
```

<div id="force_grouping_standard_compatibility">
  ## force\_grouping\_standard\_compatibility
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.9"},{"label": "1"},{"label": "GROUPING 함수의 출력이 SQL 표준 및 다른 DBMS와 동일해지도록 합니다"}]}]} />

인수가 집계 키로 사용되지 않으면 GROUPING 함수가 1을 반환합니다

<div id="force_index_by_date">
  ## force\_index\_by\_date
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

날짜 기준으로 인덱스를 사용할 수 없으면 쿼리 실행을 비활성화합니다.

MergeTree 엔진 계열의 테이블에서 작동합니다.

`force_index_by_date=1`이면 ClickHouse는 쿼리에 데이터 범위를 제한하는 데 사용할 수 있는 날짜 키 조건이 있는지 확인합니다. 적절한 조건이 없으면 예외를 발생시킵니다. 다만, 해당 조건이 읽어야 하는 데이터 양을 실제로 줄이는지는 확인하지 않습니다. 예를 들어 `Date != ' 2000-01-01 '` 조건은 테이블의 모든 데이터와 일치하더라도 허용됩니다(즉, 쿼리를 실행하려면 전체 스캔이 필요합니다). MergeTree 테이블의 데이터 범위에 대한 자세한 내용은 [MergeTree](/docs/ko/reference/engines/table-engines/mergetree-family/mergetree)를 참조하십시오.

<div id="force_primary_key">
  ## force\_primary\_key
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

프라이머리 키 인덱싱을 사용할 수 없으면 쿼리 실행을 비활성화합니다.

MergeTree 엔진 계열의 테이블에서 작동합니다.

`force_primary_key=1`이면 ClickHouse는 쿼리에 데이터 범위를 제한하는 데 사용할 수 있는 프라이머리 키 조건이 있는지 확인합니다. 적절한 조건이 없으면 예외를 발생시킵니다. 다만, 해당 조건이 읽어야 하는 데이터 양을 실제로 줄이는지는 확인하지 않습니다. MergeTree 테이블의 데이터 범위에 대한 자세한 내용은 [MergeTree](/docs/ko/reference/engines/table-engines/mergetree-family/mergetree)를 참조하십시오.

<div id="force_remove_data_recursively_on_drop">
  ## force\_remove\_data\_recursively\_on\_drop
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

DROP 쿼리 시 데이터를 재귀적으로 삭제합니다. '디렉터리가 비어 있지 않음' 오류를 방지하지만, 분리된 데이터가 자동으로 삭제될 수 있습니다.
