Referência de parâmetros do gerenciamento de planos de consultas do Aurora PostgreSQL - Amazon Aurora

Referência de parâmetros do gerenciamento de planos de consultas do Aurora PostgreSQL

Você pode definir suas preferências para a extensão apg_plan_mgmt usando os parâmetros listados nesta seção. Eles estão disponíveis no parâmetro de cluster de banco de dados personalizado e no grupo de parâmetros de banco de dados associado ao seu cluster de banco de dados do Aurora PostgreSQL. Esses parâmetros controlam o comportamento do recurso de gerenciamento de planos de consultas e como ele afeta o otimizador. Para obter informações sobre como configurar o gerenciamento de planos de consultas, consulte Ativar o gerenciamento de planos de consulta do Aurora PostgreSQL. A alteração dos parâmetros a seguir não terá efeito se a extensão apg_plan_mgmt não for configurada conforme detalhado nessa seção. Para obter informações sobre como modificar parâmetros, consulte Modificar parâmetros em um grupo de parâmetros de cluster de banco de dados e Como trabalhar com grupos de parâmetros de banco de dados em uma instância de banco de dados.

apg_plan_mgmt.capture_plan_baselines

Captura os planos de execução de consultas gerados pelo otimizador para cada instrução SQL e os armazena na exibição dba_plans. Por padrão, o número máximo de planos que podem ser armazenados é 10.000, conforme especificado pelo parâmetro apg_plan_mgmt.max_plans. Para obter informações de referência, consulte apg_plan_mgmt.max_plans.

É possível definir esse parâmetro no grupo de parâmetros do cluster de banco de dados personalizado ou no grupo de parâmetros do banco de dados personalizado. Alterar o valor desse parâmetro não requer uma reinicialização.

Padrão Valores permitidos Descrição
off automatic Ativa a captura de planos para todos os bancos de dados na instância de banco de dados. Coleta um plano para cada instrução SQL executada duas ou mais vezes. Use essa configuração para cargas de trabalho grandes ou em evolução a fim de fornecer estabilidade ao plano.
manual Ativa a captura de planos somente para instruções subsequentes, até que você a desative novamente. O uso dessa configuração permite capturar planos de execução de consultas somente para instruções SQL críticas específicas ou para consultas problemáticas conhecidas.
off Desabilita a captura de planos.

Para obter mais informações, consulte Capturar planos de execução do Aurora PostgreSQL.

apg_plan_mgmt.plan_capture_threshold

Especifica um limite para que, se o custo total do plano de execução da consulta estiver abaixo do limite, o plano não seja capturado na exibição. apg_plan_mgmt.dba_plans

Alterar o valor desse parâmetro não requer uma reinicialização.

Padrão Valores permitidos Descrição
0 0 - 1.79769e+308

Define o limite do custo total de execução do plano de consulta apg_plan_mgmt para captura de planos.

Para obter mais informações, consulte Examinar planos de consulta do Aurora PostgreSQL na exibição dba_plans.

apg_plan_mgmt.explain_hashes

Especifica se EXPLAIN [ANALYZE] mostra sql_hash e plan_hash no final de sua saída. Alterar o valor desse parâmetro não requer uma reinicialização.

Padrão Valores permitidos Descrição
0 0 (desativado) EXPLAIN não mostra sql_hash e plan_hash sem a opção hashes true.
1 (ativado) EXPLAIN mostra sql_hash e plan_hash sem a opção hashes true.

apg_plan_mgmt.log_plan_enforcement_result

Especifica se os resultados precisam ser registrados para verificar se os planos gerenciados pelo QPM são usados corretamente. Quando um plano genérico armazenado é usado, não haverá registros gravados nos arquivos de log. Alterar o valor desse parâmetro não requer uma reinicialização.

Padrão Valores permitidos Descrição
none none Não mostra nenhum resultado de aplicação do plano nos arquivos de log.
on_error Mostra apenas o resultado de aplicação do plano em arquivos de log quando o QPM não usa planos gerenciados.
tudo Mostra todos os resultados de aplicação do plano em arquivos de log, incluindo êxitos e falhas.

apg_plan_mgmt.max_databases

Especifica o número máximo de bancos de dados na instância Writer do seu cluster de banco de dados do Aurora PostgreSQL que podem usar o gerenciamento de planos de consultas. Por padrão, até 10 bancos de dados podem usar o gerenciamento de planos de consultas. Se você tiver mais de 10 bancos de dados na instância, poderá alterar o valor dessa configuração. Para descobrir quantos bancos de dados existem em determinada instância, conecte-se à instância usando psql. Depois, use o metacomando psql, \l, para listar os bancos de dados.

Alterar o valor desse parâmetro exige que você reinicialize a instância para que a configuração entre em vigor.

Padrão Valores permitidos Descrição
10 10-2147483647 Número máximo de bancos de dados que podem usar o gerenciamento de planos de consultas na instância.

É possível definir esse parâmetro no grupo de parâmetros do cluster de banco de dados personalizado ou no grupo de parâmetros do banco de dados personalizado.

apg_plan_mgmt.max_plans

Defina o número máximo de instruções SQL que o gerenciador de planos de consulta pode manter na visualização apg_plan_mgmt.dba_plans. Recomendamos definir esse parâmetro como 10000 ou superior para todas as versões do Aurora PostgreSQL.

É possível definir esse parâmetro no grupo de parâmetros do cluster de banco de dados personalizado ou no grupo de parâmetros do banco de dados personalizado. Alterar o valor desse parâmetro exige que você reinicialize a instância para que a configuração entre em vigor.

Padrão Valores permitidos Descrição
10000 10-2147483647

Número máximo de planos que podem ser armazenados na exibição apg_plan_mgmt.dba_plans.

O padrão para o Aurora PostgreSQL versão 10 e anteriores é 1000.

Para obter mais informações, consulte Examinar planos de consulta do Aurora PostgreSQL na exibição dba_plans.

apg_plan_mgmt.plan_hash_version

Especifica os casos de uso que o cálculo de plan_hash foi desenvolvido para atender. Uma versão superior de apg_plan_mgmt.plan_hash_version contém todas as funcionalidades da versão inferior. Por exemplo, a versão 3 atende aos casos de uso compatíveis com a versão 2.

A alteração do valor desse parâmetro deve ser seguida de uma chamada para apg_plan_mgmt.validate_plans('update_plan_hash'). Ela atualiza os valores de plan_hash em cada banco de dados com apg_plan_mgmt instalado e entradas na tabela de planos. Para obter mais informações, consulte Validar planos.

Padrão Valores permitidos Descrição
1 1 Cálculo padrão de plan_hash.
2 Cálculo de plan_hash modificado para oferecer suporte a vários esquemas.
3 Cálculo de plan_hash modificado para oferecer suporte a vários esquemas e a tabelas particionadas.
4 Cálculo de plan_hash modificado para oferecer suporte a nós de materialização e a operadores paralelos.

apg_plan_mgmt.plan_retention_period

Especifica o número de dias em que os planos serão mantidos na exibição apg_plan_mgmt.dba_plans; serão excluídos automaticamente depois disso. Por padrão, um plano é excluído quando tiverem decorrido 32 dias desde o último uso do plano (a coluna last_used na exibição apg_plan_mgmt.dba_plans). Você pode alterar essa configuração para qualquer número, 1 ou mais.

Alterar o valor desse parâmetro exige que você reinicialize a instância para que a configuração entre em vigor.

Padrão Valores permitidos Descrição
32 1-2147483647 Número máximo de dias desde o último uso de um plano antes que seja excluído.

Para obter mais informações, consulte Examinar planos de consulta do Aurora PostgreSQL na exibição dba_plans.

apg_plan_mgmt.unapproved_plan_execution_threshold

Especifica um limite de custo abaixo do qual um plano Não aprovado pode ser usado pelo otimizador. Por padrão, o limite é 0, portanto o otimizador não executa planos com status Não aprovado. Definir esse parâmetro como um limite de custo trivialmente baixo, como 100, evita a sobrecarga de fiscalização do plano em planos triviais. Você também pode definir esse parâmetro como um valor extremamente grande, como 10000000, usando o estilo reativo do gerenciamento do plano. Isso permite que o otimizador use todos os planos escolhidos sem sobrecarga de fiscalização do plano. Mas, quando um plano ruim é encontrado, você pode marcá-lo manualmente como “rejeitado” para que não seja usado na próxima vez.

O valor desse parâmetro representa uma estimativa de custo para execução de determinado plano. Se um plano Não aprovado estiver abaixo desse custo estimado, o otimizador o usará para a instrução SQL. Você pode ver os planos capturados e seu status (Aprovado, Não aprovado) na exibição dba_plans. Para saber mais, consulte Examinar planos de consulta do Aurora PostgreSQL na exibição dba_plans.

Alterar o valor desse parâmetro não requer uma reinicialização.

Padrão Valores permitidos Descrição
0 0-2147483647 Estimativa de custo do plano abaixo da qual um plano Não aprovado é usado.

Para obter mais informações, consulte Usar planos gerenciados do Aurora PostgreSQL.

apg_plan_mgmt.use_plan_baselines

Especifica que o otimizador deve usar um dos planos capturados e armazenados com status Aprovado na exibição apg_plan_mgmt.dba_plans. Por padrão, esse parâmetro está desativado (false), fazendo com que o otimizador use o plano de custo mínimo que ele gera sem qualquer avaliação adicional. Ativar esse parâmetro (configurá-lo como true) força o otimizador a escolher um plano de execução de consulta para a instrução a partir da linha de base do plano. Para obter mais informações, consulte Usar planos gerenciados do Aurora PostgreSQL. Para encontrar uma imagem que detalha esse processo, consulte Como o otimizador escolhe que plano executar..

É possível definir esse parâmetro no grupo de parâmetros do cluster de banco de dados personalizado ou no grupo de parâmetros do banco de dados personalizado. Alterar o valor desse parâmetro não requer uma reinicialização.

Padrão Valores permitidos Descrição
false true Use um plano Aprovado, Preferencial ou Não aprovado de apg_plan_mgmt.dba_plans. Se nenhum deles atender a todos os critérios de avaliação do otimizador, ele poderá usar seu próprio plano de custo mínimo gerado. Para obter mais informações, consulte Como o otimizador escolhe que plano executar..
false Use o plano de custo mínimo gerado pelo otimizador.

Você pode avaliar os tempos de resposta de diferentes planos capturados e alterar o status do plano, conforme necessário. Para obter mais informações, consulte Manutenção dos planos de execução do Aurora PostgreSQL.

auto_explain.hashes

Especifica se a saída de auto_explain mostra sql_hash e plan_hash. Alterar o valor desse parâmetro não requer uma reinicialização.

Padrão Valores permitidos Descrição
0 (desativado) 0 (desativado) O resultado de auto_explain não mostra sql_hash nem plan_hash.
1 (ativado) O resultado de auto_explain mostra sql_hash e plan_hash.