> ## 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 query_plan_*

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

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>;
};

export const ExperimentalBadge = () => {
  return <div 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. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">Saiba mais.</a></u>
        </div>;
};

Estas configurações estão disponíveis em [system.settings](/docs/pt-BR/reference/system-tables/settings) e são autogeradas com base no [código-fonte](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="query_plan_aggregation_in_order">
  ## query\_plan\_aggregation\_in\_order
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.12"},{"label": "1"},{"label": "Ativa algumas refatorações relacionadas ao plano de consulta"}]}]} />

Ativa/desativa a otimização de agregação em ordem no nível do plano de consulta.
Só tem efeito se a configuração [`query_plan_enable_optimizations`](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

<Note>
  Esta é uma configuração para especialistas que deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de maneiras incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desabilitar
* 1 - Habilitar

<div id="query_plan_convert_any_join_to_semi_or_anti_join">
  ## query\_plan\_convert\_any\_join\_to\_semi\_or\_anti\_join
</div>

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

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

Permite converter ANY JOIN em SEMI JOIN ou ANTI JOIN se o filtro após o JOIN sempre resultar em false para linhas com ou sem correspondência

<div id="query_plan_convert_join_to_in">
  ## query\_plan\_convert\_join\_to\_in
</div>

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

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

Permite converter `JOIN` em uma subconsulta com `IN` se as colunas de saída estiverem associadas apenas à tabela da esquerda. Pode causar resultados incorretos com `JOIN`s que não sejam `ANY` (por exemplo, `JOIN`s `ALL`, que são o padrão).

<div id="query_plan_convert_outer_join_to_inner_join">
  ## query\_plan\_convert\_outer\_join\_to\_inner\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1"},{"label": "Permite converter OUTER JOIN em INNER JOIN se o filtro após JOIN sempre excluir os valores padrão"}]}]} />

Permite converter `OUTER JOIN` em `INNER JOIN` se o filtro após `JOIN` sempre excluir os valores padrão

<div id="query_plan_direct_read_from_text_index">
  ## query\_plan\_direct\_read\_from\_text\_index
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "O índice de texto agora está em GA"}]}, {"id": "row-2","items": [{"label": "25.9"},{"label": "1"},{"label": "Nova configuração."}]}]} />

Permite executar a filtragem de busca de texto completo usando apenas o índice de texto invertido no plano de consulta.

<div id="query_plan_display_internal_aliases">
  ## query\_plan\_display\_internal\_aliases
</div>

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

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

Exibe aliases internos (como \_\_table1) em EXPLAIN PLAN em vez dos especificados na consulta original.

<div id="query_plan_enable_multithreading_after_window_functions">
  ## query\_plan\_enable\_multithreading\_after\_window\_functions
</div>

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

Habilita multithreading após a avaliação de funções de janela para permitir o processamento de streams em paralelo

<div id="query_plan_enable_optimizations">
  ## query\_plan\_enable\_optimizations
</div>

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

Ativa ou desativa a otimização de consultas no nível do plano de consulta.

<Note>
  Esta é uma configuração para especialistas que deve ser usada apenas para depuração por desenvolvedores. A configuração poderá mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desabilita todas as otimizações no nível do plano de consulta
* 1 - Habilita as otimizações no nível do plano de consulta (mas otimizações individuais ainda podem ser desabilitadas por meio de suas próprias configurações)

<div id="query_plan_execute_functions_after_sorting">
  ## query\_plan\_execute\_functions\_after\_sorting
</div>

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

Ativa ou desativa uma otimização no nível do plano de consulta que move expressões para depois das etapas de ordenação.
Só tem efeito se a configuração [`query_plan_enable_optimizations`](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

<Note>
  Esta é uma configuração de nível avançado que deve ser usada apenas para depuração por desenvolvedores. A configuração poderá mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desabilitado
* 1 - Habilitado

<div id="query_plan_filter_push_down">
  ## query\_plan\_filter\_push\_down
</div>

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

Ativa ou desativa uma otimização em nível do plano de consulta que empurra os filtros para baixo no plano de execução.
Só tem efeito se a configuração [query\_plan\_enable\_optimizations](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

<Note>
  Esta é uma configuração para especialistas que deve ser usada apenas por desenvolvedores para depuração. A configuração pode mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desabilita
* 1 - Habilita

<div id="query_plan_join_shard_by_pk_ranges">
  ## query\_plan\_join\_shard\_by\_pk\_ranges
</div>

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

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

Aplica sharding ao JOIN se as chaves de junção contiverem um prefixo de PRIMARY KEY em ambas as tabelas. Compatível com os algoritmos hash, parallel\_hash e full\_sorting\_merge. Normalmente não acelera as consultas, mas pode reduzir o consumo de memória.

<div id="query_plan_join_swap_table">
  ## query\_plan\_join\_swap\_table
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "auto"},{"label": "Nova configuração. Antes, a tabela da direita era sempre escolhida."}]}]} />

Define qual lado do join deve ser a tabela de build (também chamada de inner, aquela inserida na tabela hash em um hash join) no plano da consulta. Essa configuração é suportada apenas para a strictness `ALL` de join com a cláusula `JOIN ON`. Os valores possíveis são:

* 'auto': Deixa o planner decidir qual tabela usar como tabela de build.
* 'false': Nunca troca as tabelas (a tabela da direita é a tabela de build).
* 'true': Sempre troca as tabelas (a tabela da esquerda é a tabela de build).

<div id="query_plan_lift_up_array_join">
  ## query\_plan\_lift\_up\_array\_join
</div>

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

Ativa ou desativa uma otimização no nível do plano de consulta que move ARRAY JOINs para cima no plano de execução.
Só tem efeito se a configuração [query\_plan\_enable\_optimizations](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

<Note>
  Esta é uma configuração para especialistas que deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de maneiras incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desativado
* 1 - Ativado

<div id="query_plan_lift_up_union">
  ## query\_plan\_lift\_up\_union
</div>

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

Ativa ou desativa uma otimização no nível do plano de consulta que move subárvores maiores do plano de consulta para union, a fim de viabilizar outras otimizações.
Só surte efeito se a configuração [`query_plan_enable_optimizations`](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) estiver em 1.

<Note>
  Esta é uma configuração para especialistas que deve ser usada apenas para depuração por desenvolvedores. A configuração poderá mudar no futuro de forma incompatível com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desativado
* 1 - Ativado

<div id="query_plan_max_limit_for_join_lazy_indexing">
  ## query\_plan\_max\_limit\_for\_join\_lazy\_indexing
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1000"},{"label": "Nova configuração adicionada para controlar o valor máximo de limite que permite usar o plano de consulta na otimização de lazy indexing em JOIN. Se for zero, não haverá limite"}]}]} />

Controla o valor máximo de limite que permite usar o plano de consulta na otimização de lazy indexing em JOIN. Se for zero, não haverá limite.

<div id="query_plan_max_limit_for_lazy_materialization">
  ## query\_plan\_max\_limit\_for\_lazy\_materialization
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "10"},{"label": "Adicionada nova configuração para controlar o valor máximo de LIMIT que permite usar o plano de consulta para a otimização de materialização lazy. Se for zero, não há limite"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "10000"},{"label": "Aumentado o limite após melhoria de desempenho"}]}, {"id": "row-3","items": [{"label": "25.11"},{"label": "100"},{"label": "Mais otimizado"}]}]} />

Controla o valor máximo de LIMIT que permite usar o plano de consulta para a otimização de materialização lazy. Se for zero, não há limite.

<div id="query_plan_max_limit_for_top_k_optimization">
  ## query\_plan\_max\_limit\_for\_top\_k\_optimization
</div>

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

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

Controla o valor máximo do limite que permite avaliar o plano de consulta para a otimização TopK usando índice de salto minmax e filtragem dinâmica por limiar. Se for zero, não haverá limite.

<div id="query_plan_max_optimizations_to_apply">
  ## query\_plan\_max\_optimizations\_to\_apply
</div>

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

Limita o número total de otimizações aplicadas ao plano da consulta; consulte a configuração [query\_plan\_enable\_optimizations](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations).
É útil para evitar tempos de otimização muito longos em consultas complexas.
Na consulta EXPLAIN PLAN, a aplicação de otimizações é interrompida após esse limite ser atingido, e o plano é retornado como está.
Na execução normal de consultas, se o número real de otimizações exceder essa configuração, uma exceção é lançada.

<Note>
  Esta é uma configuração para especialistas que deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

<div id="query_plan_max_set_size_for_projection_match">
  ## query\_plan\_max\_set\_size\_for\_projection\_match
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "10000"},{"label": "Adicionada nova configuração que limita o custo dos conjuntos da cláusula `IN` com hash de conteúdo no mecanismo de correspondência de projeção (atualmente: projeção agregada). Conjuntos maiores que o limite são tratados como não correspondentes. Zero desabilita totalmente a comparação por hash de conteúdo (valor de compatibility: a correspondência de projeção nunca é bem-sucedida para nós com conjuntos `IN`)."}]}]} />

Número máximo de linhas em um conjunto da cláusula `IN` para o qual o mecanismo de correspondência de projeção calcula e compara hashes de conteúdo ao decidir se dois conjuntos são iguais. Conjuntos maiores que esse valor são tratados como não correspondentes e ignoram a projeção. Zero desabilita totalmente a comparação por hash de conteúdo: a correspondência de projeção nunca é bem-sucedida para nós que contêm conjuntos da cláusula `IN`.

Usado pelo mecanismo de correspondência de projeção agregada (e por qualquer mecanismo de correspondência de projeção futuro que precise comparar conjuntos da cláusula `IN`). O cálculo do hash de conteúdo é `O(N log N)` em relação ao número de elementos do conjunto; essa configuração limita o custo incorrido durante o planejamento quando muitas cláusulas `IN` aparecem na consulta ou na projeção.

<div id="query_plan_max_step_description_length">
  ## query\_plan\_max\_step\_description\_length
</div>

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

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

Comprimento máximo da descrição da etapa no EXPLAIN PLAN.

<div id="query_plan_merge_expression_into_join">
  ## query\_plan\_merge\_expression\_into\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "Nova configuração. Permite mesclar a etapa Expression à etapa JOIN durante a otimização da reordenação de joins."}]}]} />

Permite mesclar expressões à etapa JOIN durante a otimização da reordenação de joins.

<div id="query_plan_merge_expressions">
  ## query\_plan\_merge\_expressions
</div>

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

Ativa ou desativa uma otimização no nível do plano de consulta que mescla filtros consecutivos.
Só entra em vigor se a configuração [query\_plan\_enable\_optimizations](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) estiver definida como 1.

<Note>
  Esta é uma configuração para especialistas, que deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desabilita
* 1 - Habilita

<div id="query_plan_merge_filter_into_join_condition">
  ## query\_plan\_merge\_filter\_into\_join\_condition
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "Adicionada nova configuração para incorporar o filtro à condição de join"}]}]} />

Permite incorporar o filtro à condição de `JOIN` e converter `CROSS JOIN` em `INNER`.

<div id="query_plan_merge_filters">
  ## query\_plan\_merge\_filters
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Permite mesclar filtros no plano de consulta"}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "1"},{"label": "Permite mesclar filtros no plano de consulta. Isso é necessário para oferecer suporte adequado a filter-push-down com o analyzer."}]}]} />

Permite mesclar filtros no plano de consulta.

<div id="query_plan_min_columns_for_join_lazy_indexing">
  ## query\_plan\_min\_columns\_for\_join\_lazy\_indexing
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "3"},{"label": "Controla o número mínimo de colunas de payload do lado esquerdo necessário para ativar a otimização de lazy indexing em JOIN"}]}]} />

Controla o número mínimo de colunas de payload do lado esquerdo necessário para ativar a otimização de lazy indexing em JOIN. 0 significa que a otimização está desativada.

<div id="query_plan_optimize_join_order_algorithm">
  ## query\_plan\_optimize\_join\_order\_algorithm
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="JoinOrderAlgorithm" default_value="greedy" />

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

Especifica quais algoritmos de ordem de join devem ser testados durante a otimização do plano de consulta. Os seguintes algoritmos estão disponíveis:

* 'greedy' - algoritmo guloso básico - é rápido, mas pode não produzir a melhor ordem de join
* 'dpsize' - implementa o algoritmo DPsize, atualmente apenas para INNER JOINs - considera todas as ordens de join possíveis e encontra a mais otimizada, mas pode ser lento para consultas com muitas tabelas e predicados de junção.
* 'dpsub' - implementa o algoritmo DPsub, que oferece suporte a junções INNER e não INNER - considera todas as ordens de join possíveis e encontra a mais otimizada, mas pode ser lento para consultas com muitas tabelas e predicados de junção.
* 'dphyp' - implementa o algoritmo DPhyp (Programação Dinâmica via Particionamento de Hipergrafo), atualmente apenas para junções INNER - explora o mesmo espaço de busca que `dpsize`, mas enumera apenas pares de subgrafos conectados, o que gera menos junções intermediárias em grafos de junção esparsos, em troca de não considerar produtos cartesianos
  Vários algoritmos podem ser especificados como uma lista separada por vírgulas, por exemplo `dphyp,greedy`. Eles são testados na ordem informada; se um algoritmo não conseguir processar a consulta (por exemplo, devido a OUTER JOINs ou componentes desconectados), o próximo será usado como alternativa.

<div id="query_plan_optimize_join_order_limit">
  ## query\_plan\_optimize\_join\_order\_limit
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1"},{"label": "Nova configuração"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "10"},{"label": "Permitir, por padrão, a reordenação de JOINs com mais tabelas"}]}]} />

Otimiza a ordem de join dentro da mesma subconsulta. Atualmente, há suporte para isso apenas em casos muito limitados.
O valor é o número máximo de tabelas a serem otimizadas.

<div id="query_plan_optimize_join_order_max_searched_plans">
  ## query\_plan\_optimize\_join\_order\_max\_searched\_plans
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "100000"},{"label": "Nova configuração para limitar o número de planos parciais que o otimizador de ordem de join enumera antes de passar para o próximo algoritmo."}]}]} />

Número máximo de planos parciais que o otimizador de ordem de join pode enumerar antes de interromper a busca e passar para o próximo algoritmo em `query_plan_optimize_join_order_algorithm`.
Isso limita o tempo de otimização de forma determinística (independentemente do tempo decorrido) em grafos de join densos, como cliques ou estrelas, nos quais o espaço de busca cresce exponencialmente.
Defina como 0 para desabilitar o limite. Não tem efeito sobre o `query_plan_optimize_join_order_limit` padrão, no qual a busca sempre permanece bem abaixo desse limite.

<div id="query_plan_optimize_join_order_randomize">
  ## query\_plan\_optimize\_join\_order\_randomize
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nova configuração para embaralhar as estatísticas da ordem de join para testes."}]}]} />

Quando diferente de zero, o otimizador da ordem de join usa cardinalidades e NDVs gerados aleatoriamente em vez de estatísticas reais.
Quando definido como 1, uma semente aleatória é gerada; quando definido com um valor > 1, esse valor é usado diretamente como semente.
Isso se destina a testes para identificar erros causados por diferentes ordenações de join.

<div id="query_plan_optimize_lazy_final">
  ## query\_plan\_optimize\_lazy\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nova configuração para otimizar a leitura com FINAL no ReplacingMergeTree usando análise de índice baseada em conjuntos"}]}]} />

Otimiza a leitura com FINAL no ReplacingMergeTree criando um conjunto de chaves primárias e usando-o na análise de índice.

<div id="query_plan_optimize_lazy_materialization">
  ## query\_plan\_optimize\_lazy\_materialization
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "Adicionada nova configuração para usar o plano de consulta na otimização de materialização lazy"}]}]} />

Usar o plano de consulta na otimização de materialização lazy.

<div id="query_plan_optimize_prewhere">
  ## query\_plan\_optimize\_prewhere
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "Permitir o push down do filtro para a expressão PREWHERE em armazenamentos compatíveis"}]}]} />

Permitir o push down do filtro para a expressão PREWHERE em armazenamentos compatíveis

<div id="query_plan_push_down_limit">
  ## query\_plan\_push\_down\_limit
</div>

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

Ativa ou desativa uma otimização no nível do plano de consulta que desloca os LIMITs para baixo no Plano de Execução.
Só tem efeito se a configuração [query\_plan\_enable\_optimizations](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) estiver definida como 1.

<Note>
  Esta é uma configuração para usuários avançados que deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desabilitar
* 1 - Habilitar

<div id="query_plan_push_limit_by_into_sort">
  ## query\_plan\_push\_limit\_by\_into\_sort
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1"},{"label": "Nova configuração que insere um LIMIT BY por fluxo no pipeline de ordenação quando as colunas de LIMIT BY são um prefixo de ORDER BY, reduzindo as linhas que passam pelo merge final."}]}]} />

Ativa/desativa uma otimização no nível do plano de consulta para consultas `ORDER BY ... LIMIT BY`. Quando as colunas de `LIMIT BY` são um prefixo da cláusula `ORDER BY`, cada fluxo paralelo ordenado aplica `LIMIT BY` antes que os fluxos sejam mesclados em um só, reduzindo as linhas processadas pelo merge final e pelos estágios subsequentes do pipeline. Acelera consultas em que `LIMIT BY` descarta uma grande fração das linhas.

Só surte efeito se a configuração [query\_plan\_enable\_optimizations](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) estiver definida como 1.

Valores possíveis:

* 0 - Desabilitado
* 1 - Habilitado

<div id="query_plan_read_in_order">
  ## query\_plan\_read\_in\_order
</div>

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

Ativa ou desativa a otimização de leitura em ordem no nível do plano de consulta.
Só tem efeito se a configuração [`query_plan_enable_optimizations`](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

<Note>
  Esta é uma configuração de nível especialista que deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desativa
* 1 - Ativa

<div id="query_plan_read_in_order_through_join">
  ## query\_plan\_read\_in\_order\_through\_join
</div>

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

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

Mantém a leitura em ordem da tabela à esquerda em operações JOIN, que pode ser aproveitada por etapas subsequentes.

<div id="query_plan_remove_redundant_distinct">
  ## query\_plan\_remove\_redundant\_distinct
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "Remover etapa DISTINCT redundante no plano de consulta"}]}]} />

Ativa ou desativa uma otimização no nível do plano de consulta que remove etapas DISTINCT redundantes.
Só entra em vigor se a configuração [`query_plan_enable_optimizations`](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

<Note>
  Esta é uma configuração para especialistas e deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de forma incompatível com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desabilitar
* 1 - Habilitar

<div id="query_plan_remove_redundant_sorting">
  ## query\_plan\_remove\_redundant\_sorting
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.1"},{"label": "1"},{"label": "Remove a ordenação redundante no plano de consulta. Por exemplo, etapas de ordenação relacionadas a cláusulas ORDER BY em subconsultas"}]}]} />

Ativa ou desativa uma otimização no nível do plano de consulta que remove etapas de ordenação redundantes, por exemplo, em subconsultas.
Só tem efeito se a configuração [`query_plan_enable_optimizations`](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

<Note>
  Esta é uma configuração de nível avançado que deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desativar
* 1 - Ativar

<div id="query_plan_remove_unused_columns">
  ## query\_plan\_remove\_unused\_columns
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Nova configuração. Adiciona uma otimização para remover colunas não utilizadas no plano de consulta."}]}]} />

Ativa ou desativa uma otimização no nível do plano de consulta que tenta remover colunas não utilizadas (tanto de entrada quanto de saída) das etapas do plano de consulta.
Só tem efeito se a configuração [query\_plan\_enable\_optimizations](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

<Note>
  Esta é uma configuração para especialistas que deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desabilitar
* 1 - Habilitar

<div id="query_plan_reuse_storage_ordering_for_window_functions">
  ## query\_plan\_reuse\_storage\_ordering\_for\_window\_functions
</div>

**Aliases**: `optimize_read_in_window_order`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Desativa essa lógica por padrão."}]}]} />

Ativa/desativa uma otimização no nível do plano de consulta que usa a ordenação do armazenamento ao ordenar funções de janela.
Só tem efeito se a configuração [`query_plan_enable_optimizations`](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

<Note>
  Esta é uma configuração para especialistas que deve ser usada apenas por desenvolvedores para depuração. A configuração pode mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desativar
* 1 - Ativar

<div id="query_plan_split_filter">
  ## query\_plan\_split\_filter
</div>

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

<Note>
  Esta é uma configuração para especialistas que deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de maneiras incompatíveis com versões anteriores ou ser removida.
</Note>

Ativa ou desativa uma otimização no nível do plano de consulta que divide filtros em expressões.
Só tem efeito se a configuração [query\_plan\_enable\_optimizations](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) estiver definida como 1.

Valores possíveis:

* 0 - Desativar
* 1 - Ativar

<div id="query_plan_text_index_add_hint">
  ## query\_plan\_text\_index\_add\_hint
</div>

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

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

Permite adicionar uma indicação (predicado adicional) ao filtro criado a partir do índice de texto invertido no plano de consulta.

<div id="query_plan_top_k_through_join">
  ## query\_plan\_top\_k\_through\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Nova configuração para habilitar uma otimização no nível do plano de consulta que propaga ORDER BY ... LIMIT n através de um join LEFT\/RIGHT quando a chave de ordenação faz referência apenas ao lado preservado."}]}]} />

Ativa uma otimização no nível do plano de consulta que propaga `ORDER BY ... LIMIT n` para antes de um join quando a chave de ordenação faz referência apenas a colunas do lado preservado pelo join (LEFT/RIGHT). Isso limita quantas linhas a entrada do lado preservado precisa produzir antes do join.
Só tem efeito se a configuração [query\_plan\_enable\_optimizations](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

Valores possíveis:

* 0 - Desabilita
* 1 - Habilita

<div id="query_plan_try_use_vector_search">
  ## query\_plan\_try\_use\_vector\_search
</div>

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

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

Ativa ou desativa uma otimização no nível do plano de consulta que tenta usar o índice de similaridade vetorial.
Só tem efeito se a configuração [`query_plan_enable_optimizations`](/docs/pt-BR/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) for 1.

<Note>
  Esta é uma configuração para especialistas que deve ser usada apenas para depuração por desenvolvedores. A configuração pode mudar no futuro de formas incompatíveis com versões anteriores ou ser removida.
</Note>

Valores possíveis:

* 0 - Desativar
* 1 - Ativar
