> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-postgresql-tls-support.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# configurações de sessão max_threads_*

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

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="max_threads">
  ## max\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="auto(N)" />

O número máximo de threads de processamento de consultas, excluindo as threads usadas para recuperar dados de servidores remotos (consulte o parâmetro ['max\_distributed\_connections'](/pt-BR/reference/settings/session-settings/max-distributed#max_distributed_connections)).

Este parâmetro se aplica a threads que executam os mesmos estágios do pipeline de processamento de consultas em paralelo.
Por exemplo, ao ler de uma tabela, se for possível avaliar expressões com funções, filtrar com `WHERE` e pré-agregar para `GROUP BY` em paralelo usando pelo menos o número de threads definido em 'max\_threads', então 'max\_threads' será usado.

Para consultas concluídas rapidamente por causa de um LIMIT, você pode definir um valor menor para 'max\_threads'.
Por exemplo, se o número necessário de entradas estiver localizado em cada bloco e max\_threads = 8, então 8 blocos serão recuperados, embora bastasse ler apenas um.
Quanto menor o valor de `max_threads`, menor o consumo de memória.

A configuração `max_threads`, por padrão, corresponde ao número de threads de hardware (número de CPU cores) disponíveis para o ClickHouse.
Como caso especial, em processadores x86 com menos de 32 CPU cores e SMT (por exemplo, Intel HyperThreading), o ClickHouse usa por padrão o número de núcleos lógicos (= 2 x número de núcleos físicos).

Sem SMT (por exemplo, Intel HyperThreading), isso corresponde ao número de CPU cores.

Para usuários do ClickHouse Cloud, o valor padrão será exibido como `auto(N)`, em que N corresponde ao tamanho de vCPU do seu serviço, por exemplo, 2vCPU/8GiB, 4vCPU/16GiB etc.
Consulte a tab de configurações no console do Cloud para ver uma lista de todos os tamanhos de serviço.

<div id="max_threads_for_indexes">
  ## max\_threads\_for\_indexes
</div>

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

O número máximo de threads para processar índices.

<div id="max_threads_min_free_memory_per_thread">
  ## max\_threads\_min\_free\_memory\_per\_thread
</div>

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

Reduz `max_threads` quando o servidor está sob pressão de memória, para evitar iniciar consultas com alto paralelismo que provavelmente atingiriam o limite de memória.

A memória livre é calculada como `max_server_memory_usage` do servidor menos a memória atualmente rastreada pelo memory tracker global. Se essa memória livre for menor que `max_threads` multiplicado por esse valor, `max_threads` será reduzido ao maior N tal que `N * value <= free_memory`, com mínimo de `1`.

Defina como `0` para desabilitar esse limite.

Por exemplo, com o valor padrão de 1 GiB e 32 GiB de memória livre, `max_threads` fica limitado a 32; com 1 GiB de memória livre, ele é reduzido para 1.

Essa configuração se aplica ao paralelismo no lado da leitura (`SELECT`, `UNION`, `INTERSECT`/`EXCEPT` e o lado `SELECT` de `INSERT ... SELECT`). Para o lado da escrita, consulte `max_insert_threads_min_free_memory_per_thread`.
