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 do cluster de banco de dados no Amazon Aurora e Grupos de parâmetros de banco de dados para instâncias de banco de dados do Amazon Aurora.
Parâmetros
- apg_plan_mgmt.capture_plan_baselines
- apg_plan_mgmt.plan_capture_threshold
- apg_plan_mgmt.explain_hashes
- apg_plan_mgmt.log_plan_enforcement_result
- apg_plan_mgmt.max_databases
- apg_plan_mgmt.max_plans
- apg_plan_mgmt.plan_hash_version
- apg_plan_mgmt.plan_retention_period
- apg_plan_mgmt.unapproved_plan_execution_threshold
- apg_plan_mgmt.use_plan_baselines
- auto_explain.hashes
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 ter 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 |
Para ter 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 |
---|---|---|
nenhuma | nenhuma | 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 O padrão para o Aurora PostgreSQL versão 10 e anteriores é 1000. |
Para ter 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 ter 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 ter 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 ter 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 ter 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 | verdadeiro | 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 ter 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 ter mais informações, consulte Melhorar os planos de consulta 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 . |