> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# configurações de sessão distributed_plan_*

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

export const PrivatePreviewBadge = () => {
  return <div className="privatePreviewBadge">
            <div className="privatePreviewIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M5.33301 6.66667V4.66667V4.66667C5.33301 3.194 6.52701 2 7.99967 2V2C9.47234 2 10.6663 3.194 10.6663 4.66667V4.66667V6.66667" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path d="M8.00033 9.33337V11.3334" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path fillRule="evenodd" clipRule="evenodd" d="M11.333 14H4.66634C3.92967 14 3.33301 13.4033 3.33301 12.6666V7.99996C3.33301 7.26329 3.92967 6.66663 4.66634 6.66663H11.333C12.0697 6.66663 12.6663 7.26329 12.6663 7.99996V12.6666C12.6663 13.4033 12.0697 14 11.333 14Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'Em prévia privada'}
        </div>;
};

export const ExperimentalBadge = () => {
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#experimental-features" className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Recurso experimental
        </a>;
};

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 com base no [código-fonte](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

## distributed\_plan\_default\_reader\_bucket\_count

<ExperimentalBadge />

<SettingsInfoBlock type="NonZeroUInt64" default_value="8" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "8"},{"label": "Nova configuração experimental."}]}]} />

Número padrão de tarefas para leitura paralela em consulta distribuída. As tarefas são distribuídas entre as réplicas.
Usada pelo planejador distribuído baseado em regras. O otimizador baseado em custo define o fan-out da leitura com base no custo estimado e não usa esta configuração.

## distributed\_plan\_default\_shuffle\_join\_bucket\_count

<ExperimentalBadge />

<SettingsInfoBlock type="NonZeroUInt64" default_value="8" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "8"},{"label": "Nova configuração experimental."}]}]} />

Número padrão de buckets para shuffle-hash-join distribuído.
Usado pelo planejador distribuído baseado em regras. O otimizador baseado em custo escolhe o fan-out com base no custo estimado e não usa essa configuração.

## distributed\_plan\_execute\_locally

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Nova configuração experimental."}]}]} />

Execute localmente todas as tarefas de um plano de consulta distribuída. Útil para testes e depuração.

## distributed\_plan\_fallback\_to\_local\_execution

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "1"},{"label": "Nova configuração para recorrer à execução local quando um plano não pode ser distribuído (só tem efeito com `make_distributed_plan`)."}]}]} />

Quando um plano de consulta contém uma etapa que não suporta execução distribuída, registra o motivo no log e executa a consulta no initiator, em vez de lançar uma exceção. Desabilite para obter uma exceção.

Só tem efeito quando `make_distributed_plan` (private preview) está habilitado.

## distributed\_plan\_force\_exchange\_kind

<ExperimentalBadge />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": ""},{"label": "Nova configuração experimental."}]}]} />

Força o tipo especificado de operadores Exchange entre os estágios de uma consulta distribuída.

Valores possíveis:

* '' - não força nenhum tipo de operador Exchange; deixa o otimizador escolher,
* 'Persisted' - usa arquivos temporários no armazenamento de objetos,
* 'Streaming' - transmite dados de exchange pela rede.

## distributed\_plan\_force\_shuffle\_aggregation

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "Nova configuração experimental"}]}]} />

Use a estratégia de agregação Shuffle em vez de PartialAggregation + Merge no plano de consulta distribuída.
Ignorado quando a estratégia Shuffle não pode produzir um resultado correto, por exemplo para `GROUPING SETS` ou quando a agregação deve produzir resultados em ordem de bucket.

## distributed\_plan\_max\_rows\_to\_broadcast

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="20000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "20000"},{"label": "Nova configuração experimental."}]}]} />

Número máximo de linhas para usar broadcast join em vez de shuffle join no plano de consulta distribuída.
Uma heurística para o planejador distribuído baseado em regras. Quando o otimizador baseado em custo está habilitado, a escolha entre broadcast e shuffle é feita com base no custo estimado, e esta configuração não tem efeito.

## distributed\_plan\_optimize\_exchanges

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Nova configuração experimental."}]}]} />

Remove exchanges desnecessários do plano de consulta distribuída. Desative esta opção para depuração.

## distributed\_plan\_prefer\_replicas\_over\_workers

<PrivatePreviewBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nova configuração para serializar o plano distribuído para execução nas réplicas"}]}]} />

Serializa o plano de consulta distribuída para execução nas réplicas.

## distributed\_plan\_read\_in\_order

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "Nova configuração que permite a otimização de leitura ordenada (read-in-order) para `ORDER BY` em um plano de consulta distribuída, de modo que uma leitura ordenada pela chave de ordenação da tabela possa dispensar a ordenação e encerrar mais cedo. Desativada por padrão: hoje, apenas as formas em que nenhum exchange permanece entre a leitura e a ordenação são seguras."}]}]} />

Permite a otimização de leitura ordenada (read-in-order) para `ORDER BY` em um plano de consulta distribuída, de modo que uma leitura ordenada pela
chave de ordenação da tabela possa dispensar a ordenação e encerrar mais cedo, em vez de varrer e ordenar.

Desativada por padrão: a reescrita que distribui uma ordenação parte do princípio de que a ordenação por ela encapsulada não depende de sua entrada
já estar ordenada; porém, uma ordenação que dependa disso pode receber linhas por meio de um exchange que não preserva
a ordem. Hoje, apenas as formas em que nenhum exchange permanece entre a leitura e a ordenação são seguras.

## distributed\_plan\_workers\_num

<PrivatePreviewBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "Nova configuração experimental para definir quantos workers sem estado devem ser reservados para uma consulta distribuída. Zero desabilita a reserva."}]}]} />

Quantos workers sem estado serão usados para executar esta consulta. Zero desabilita a reserva de workers sem estado para planos distribuídos.

## distributed\_plan\_workers\_provisioning\_timeout\_ms

<PrivatePreviewBadge />

<SettingsInfoBlock type="UInt64" default_value="10000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "10000"},{"label": "Nova configuração que limita por quanto tempo uma consulta aguarda que workers sem estado reservados se tornem acessíveis antes da execução."}]}, {"id": "row-2","items": [{"label": "26.8"},{"label": "10000"},{"label": "Nova configuração que limita por quanto tempo uma consulta aguarda que workers sem estado reservados se tornem acessíveis antes da execução; `compatibility` abaixo de 26.8 restaura o comportamento anterior de não aguardar."}]}]} />

Tempo total de relógio, em milissegundos, que uma consulta pode gastar no provisionamento de workers sem estado antes da execução: reservando-os do serviço de descoberta e verificando se estão acessíveis. A consulta bloqueia por até esse período para que os workers reservados fiquem prontos; quando esse tempo se esgota, a consulta prossegue com os workers verificados até então ou falha se nenhum estiver disponível. Zero aguarda apenas a etapa inicial de reserva e verificação (sem novas tentativas).
