Referência da visualização apg_plan_mgmt.dba_plans da edição compatível do Aurora PostgreSQL - Amazon Aurora

Referência da visualização apg_plan_mgmt.dba_plans da edição compatível do Aurora PostgreSQL

As colunas das informações do plano na visualização apg_plan_mgmt.dba_plans incluem o seguinte.

Coluna dba_plans Descrição
cardinality_error

Uma medida do erro entre a cardinalidade estimada em comparação com a cardinalidade real. Cardinalidade é o número de linhas da tabela que o plano deve processar. Se a cardinalidade for grande, aumentará a probabilidade de o plano não ser ideal. Essa coluna é preenchida pela função apg_plan_mgmt.evolve_plan_baselines.

compatibility_level

O nível de recurso do otimizador Aurora PostgreSQL.

created_by O usuário autenticado (session_user) que criou o plano.
enabled

Um indicador da habilitação ou de desabilitação do plano. Todos os planos permanecem habilitados por padrão. Desabilite os planos para evitar que eles sejam usados pelo otimizador. Para modificar esse valor, use a função apg_plan_mgmt.set_plan_enabled.

environment_variables

Os parâmetros Grand Unified Configuration (GUC – Grande configuração unificada) PostgreSQL e os valores substituídos pelo otimizados no momento em que o plano foi capturado.

estimated_startup_cost O custo de configuração do otimizador estimado antes da entrega de uma tabela pelo otimizador.
estimated_total_cost O custo de entrega do otimizador estimado da linha da tabela final.
execution_time_benefit_ms O benefício do tempo de execução, em milissegundos, da habilitação do plano. Essa coluna é preenchida pela função apg_plan_mgmt.evolve_plan_baselines.
execution_time_ms O tempo estimado, em milissegundos, de execução do plano. Essa coluna é preenchida pela função apg_plan_mgmt.evolve_plan_baselines.
has_side_effects Um valor que indica que a instrução SQL é uma instrução Data Manipulation Language (DML) ou uma instrução SELECT que contém uma função VOLATILE.
last_used Esse valor é atualizado para a data atual sempre que o plano é executado ou quando o plano é o de custo mínimo do otimizador de consultas. Esse valor é armazenado em memória compartilhada e enviado periodicamente para o disco. Para obter o valor mais atualizado, leia a data da memória compartilhada chamando a função apg_plan_mgmt.plan_last_used(sql_hash, plan_hash), em vez de ler o valor last_used. Para obter informações adicionais, consulte o parâmetro apg_plan_mgmt.plan_retention_period.
last_validated A data e a hora mais recentes quando se verificou que o plano poderia ser recriado pela função apg_plan_mgmt.validate_plans ou pela função apg_plan_mgmt.evolve_plan_baselines.
last_verified A data e a hora mais recentes quando se verificou que um plano era o de melhor performance para o parâmetro especificado pela função apg_plan_mgmt.evolve_plan_baselines.
origin

Como o plano foi capturado com o parâmetro apg_plan_mgmt.capture_plan_baselines. Entre os valores válidos estão os seguintes:

M – O plano foi capturado com a captura de planos manual.

A – O plano foi capturado com a captura de planos automática.

param_list

Os valores de parâmetro que foram passados para a instrução, caso esta seja uma instrução preparada.

plan_created A data e a hora em que o plano foi criado.
plan_hash O identificador do plano. A combinação de plan_hash e sql_hash identifica com exclusividade um plano específico.
plan_outline Uma representação do plano usado para recriar o plano de execução real e que seja independentemente em relação ao banco de dados. Os operadores na árvore correspondem aos operadores exibidos na saída EXPLAIN.
planning_time_ms

O tempo real de execução do planejador, em milissegundos. Essa coluna é preenchida pela função apg_plan_mgmt.evolve_plan_baselines.

queryId Um hash de instrução, conforme calculado pela extensão pg_stat_statements. Não se trata de um identificador estável ou independente de banco de dados porque ele depende de Object Identifiers (OIDs – Identificadores de objetos). O valor será 0 se compute_query_id for off ao capturar o plano de consulta.
sql_hash Um valor de hash do texto de instrução SQL, normalizado sem literais.
sql_text O texto completo da instrução SQL.
status

O status de um plano, que determina como o otimizador usa um plano. Entre os valores válidos estão os seguintes.

  • Approved – um plano utilizável que o otimizador pode optar por executar. O otimizador executa o plano de menor custo com base em um conjunto de planos aprovados da instrução gerenciada (linha de base). Para redefinir um plano a ser aprovado, use a função apg_plan_mgmt.evolve_plan_baselines.

  • Unapproved – um plano capturado cujo uso não foi verificado. Para obter mais informações, consulte Avaliar performance do plano.

  • Rejected – um plano que o otimizador não usará. Para obter mais informações, consulte Rejeitar ou desabilitar planos mais lentos.

  • Preferred – um plano que você determinou como preferido a ser usado em uma instrução gerenciada.

    Se o plano de custo mínimo do otimizador não for um plano aprovado ou preferencial, você poderá reduzir o custo indireto da imposição do plano. Para fazer isso, crie um subconjunto dos planos aprovados Preferred. Quando o custo mínimo do otimizador não for um plano Approved, um plano Preferred será escolhido antes de um plano Approved.

    Para redefinir um plano como Preferred, use a função apg_plan_mgmt.set_plan_status.

stmt_name O nome da instrução SQL dentro de uma instrução PREPARE. Este valor é uma string vazia para uma instrução preparada não nomeada. Este valor é NULL para uma instrução não preparada.
total_time_benefit_ms

O benefício do tempo total, em milissegundos, da habilitação desse plano. Este valor considera o tempo de planejamento e o tempo de execução.

Caso esse valor seja negativo, há uma desvantagem em habilitar esse plano. Essa coluna é preenchida pela função apg_plan_mgmt.evolve_plan_baselines.