> ## 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.

# configurações de sessão force_*

> Configurações de sessão do ClickHouse no grupo gerado force_*.

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
  }}>Tipo</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Padrão</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Pode ser alterado sem reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Essas configurações estão disponíveis em [system.settings](/docs/pt-BR/reference/system-tables/settings) e são geradas automaticamente a partir do [código-fonte](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" />

Força o uso da otimização quando aplicável, mesmo que a heurística tenha decidido não usá-la

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

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

Essa configuração é usada pelo próprio servidor para dar suporte a consultas distribuídas. Não a altere manualmente, pois isso prejudicará o funcionamento normal. (Força o uso de agregação em ordem em nós remotos durante a agregação distribuída).

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

Desabilita a execução da consulta se os índices de salto de dados especificados não forem usados.

Considere o exemplo a seguir:

```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": "Faz com que a função GROUPING produza a mesma saída que no padrão SQL e em outros DBMS"}]}]} />

Faz com que a função GROUPING retorne 1 quando o argumento não é usado como chave de agregação

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

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

Desativa a execução da consulta se o índice não puder ser usado com base na data.

Funciona com tabelas da família MergeTree.

Se `force_index_by_date=1`, o ClickHouse verifica se a consulta tem uma condição na chave de data que possa ser usada para restringir intervalos de dados. Se não houver uma condição adequada, ele lança uma exceção. No entanto, não verifica se a condição reduz a quantidade de dados a serem lidos. Por exemplo, a condição `Date != ' 2000-01-01 '` é aceitável mesmo quando corresponde a todos os dados da tabela (ou seja, executar a consulta exige um full scan). Para mais informações sobre intervalos de dados em tabelas MergeTree, consulte [MergeTree](/docs/pt-BR/reference/engines/table-engines/mergetree-family/mergetree).

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

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

Desativa a execução da consulta se não for possível usar indexação pela chave primária.

Funciona com tabelas da família MergeTree.

Se `force_primary_key=1`, o ClickHouse verifica se a consulta tem uma condição de chave primária que possa ser usada para restringir os intervalos de dados. Se não houver uma condição adequada, ele lançará uma exceção. No entanto, ele não verifica se a condição reduz a quantidade de dados a serem lidos. Para mais informações sobre intervalos de dados em tabelas MergeTree, consulte [MergeTree](/docs/pt-BR/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" />

Remove os dados recursivamente ao executar a consulta DROP. Evita o erro 'Directory not empty', mas pode remover silenciosamente dados desanexados
