> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-vortex-format.mintlify.site/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 CloudOnlyBadge = () => {
  return <div className="cloudBadge">
            <div className="cloudIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path fillRule="evenodd" clipRule="evenodd" d="M5.33395 12.6667H12.3739C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00004 12.3739 8.00004H12.0839V7.33337C12.0839 5.12671 10.2906 3.33337 8.08395 3.33337C6.09928 3.33337 4.45395 4.78537 4.14195 6.68204C2.55728 6.76271 1.29395 8.06204 1.29395 9.66671C1.29395 11.3234 2.63728 12.6667 4.29395 12.6667H5.33395Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'Somente no ClickHouse Cloud'}
        </div>;
};

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Versão", "Valor padrão", "Comentário"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        Histórico de versões
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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](/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_creating_set_partitions_independently">
  ## force\_creating\_set\_partitions\_independently
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Nova configuração para forçar a pré-desduplicação por partição na criação de conjuntos para `IN (subquery)`, mesmo quando a verificação de desequilíbrio entre partições a ignoraria."}]}]} />

Força a pré-desduplicação por partição na criação de conjuntos para `IN (subquery)` quando aplicável, mesmo que a verificação de desequilíbrio entre partições (a maior partição é mais de duas vezes maior que a média) tenha decidido não utilizá-la. Ignora apenas a verificação de desequilíbrio de [allow\_creating\_set\_partitions\_independently](/pt-BR/reference/settings/session-settings/allow#allow_creating_set_partitions_independently); as demais condições ainda se aplicam.

<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_distinct_partitions_independently">
  ## force\_distinct\_partitions\_independently
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Nova configuração para forçar a avaliação independente de `DISTINCT` por partição, mesmo quando a heurística de custo a ignoraria."}]}]} />

Força a avaliação independente de `DISTINCT` por partição quando aplicável, mas a heurística de custo decidiu não usá-la. Ignora apenas a heurística de custo de [allow\_distinct\_partitions\_independently](/pt-BR/reference/settings/session-settings/allow#allow_distinct_partitions_independently); as demais condições continuam se aplicando.

<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](/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](/pt-BR/reference/engines/table-engines/mergetree-family/mergetree).

<div id="force_read_through_distributed_cache">
  ## force\_read\_through\_distributed\_cache
</div>

<CloudOnlyBadge />

<SettingsInfoBlock type="BoolAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "auto"},{"label": "Nova configuração que substitui a configuração do servidor `enable_read_through_distributed_cache` em uma única consulta."}]}, {"id": "row-2","items": [{"label": "26.8"},{"label": "auto"},{"label": "Nova configuração que substitui a configuração do servidor `enable_read_through_distributed_cache` em uma única consulta."}]}]} />

Só tem efeito no ClickHouse Cloud. Substitui a configuração do servidor `enable_read_through_distributed_cache` em uma única consulta. `auto` (o padrão) significa usar a configuração do servidor.

<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

<div id="force_window_partitions_independently">
  ## force\_window\_partitions\_independently
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Nova configuração para forçar a avaliação independente de funções de janela por partição, mesmo quando a heurística de custo a ignoraria."}]}]} />

Força a avaliação independente de funções de janela por partição quando ela for aplicável, mas a heurística de custo tiver decidido não utilizá-la. Ignora apenas a heurística de custo de [allow\_window\_partitions\_independently](/pt-BR/reference/settings/session-settings/allow#allow_window_partitions_independently); as demais condições continuam sendo aplicadas.

<div id="force_write_through_distributed_cache">
  ## force\_write\_through\_distributed\_cache
</div>

<CloudOnlyBadge />

<SettingsInfoBlock type="BoolAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "auto"},{"label": "Nova configuração que substitui a configuração do servidor `enable_write_through_distributed_cache` em uma única consulta."}]}, {"id": "row-2","items": [{"label": "26.8"},{"label": "auto"},{"label": "Nova configuração que substitui a configuração do servidor `enable_write_through_distributed_cache` em uma única consulta."}]}]} />

Tem efeito somente no ClickHouse Cloud. Substitui a configuração do servidor `enable_write_through_distributed_cache` em uma única consulta. `auto` (o padrão) indica que a configuração do servidor deve ser seguida.
