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

> Configurações de sessão do ClickHouse no grupo query_plan_* 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>;
};

export const ExperimentalBadge = () => {
  return <a href="/docs/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>;
};

Estas configurações estão disponíveis em [system.settings](/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" />

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`](/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" />

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" />

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" />

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" />

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" />

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`](/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](/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" />

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" />

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](/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`](/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" />

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" />

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" />

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](/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" />

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" />

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" />

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](/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" />

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" />

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" />

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" />

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" />

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" />

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" />

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" />

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" />

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" />

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](/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" />

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](/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`](/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" />

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" />

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`](/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" />

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`](/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" />

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](/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" />

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`](/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](/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" />

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" />

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](/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" />

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`](/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
