View a markdown version of this page

Gerenciamento de planos de consulta - AWSOrientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciamento de planos de consulta

Alterações em estatísticas, restrições, configurações do ambiente, associações de parâmetros de consulta e atualizações do mecanismo de banco de dados PostgreSQL podem causar regressão do plano de consultas. Regressão do plano de consultas ocorre quando o otimizador seleciona um plano abaixo do ideal do que o anterior a anterior a determinada alteração no ambiente do banco de dados.

Na edição compatível com o Amazon Aurora PostgreSQL, o recurso de gerenciamento do plano de consulta (QPM) foi projetado para garantir a adaptabilidade e a estabilidade do plano, independentemente das mudanças no ambiente do banco de dados que possam causar a regressão do plano de consulta. O QPM fornece algum controle sobre o otimizador. Usando o QPM, controle o plano de execução de consultas gerado pelo otimizador para suas consultas SQL. O plano de execução da consulta força o otimizador a escolher entre seus planos aprovados para consultas críticas, para otimizar seu desempenho.

As empresas geralmente implantam aplicativos e bancos de dados globalmente ou mantêm vários ambientes para cada banco de dados de aplicativos, como desenvolvimento, controle de qualidade, preparação, pré-produção, teste e produção. Manter os planos de execução de consultas para cada banco de dados, em cada ambiente e em todosRegiões da AWS pode ser complexo e demorado. O QPM pode exportar e importar planos gerenciados compatíveis com o Amazon Aurora PostgreSQL de um banco de dados para outro. Isso ajuda você a gerenciar o plano de execução da consulta de forma centralizada e a implantar bancos de dados globalmente. Você pode usar esse recurso para investigar um conjunto de planos em um banco de dados de pré-produção, verificar se eles funcionam bem e depois carregá-los no ambiente de produção.

O QPM também oferece vários outros benefícios. Por exemplo, você pode usar o QPM para melhorar os planos de execução que não podem ser alterados nos aplicativos ou quando as dicas não podem ser adicionadas à declaração. O QPM também detecta automaticamente novos planos de custo mínimo que o otimizador descobre, para que você possa continuar otimizando os custos, além do desempenho.

Recomendamos que você habilite o QPM. Quando o QPM está ativado, o otimizador usa o plano de custo mínimo que você aprovou. Isso ajuda a evitar a regressão e reduz o tempo necessário para gerenciar e corrigir planos abaixo do ideal.

Há duas abordagens diferentes para usar o recurso QPM: proativo e reativo. A abordagem proativa foi projetada para ajudar a evitar que a regressão de desempenho ocorra, e a abordagem reativa foi projetada para detectar e reparar regressões de desempenho depois que elas ocorrerem. Você pode selecionar sua abordagem por consulta. Para consultas complexas que podem estar sujeitas à regressão ou para consultas críticas para os negócios, você pode usar uma abordagem proativa e aprovar os planos ideais para essas consultas. Se outras consultas sofrerem regressão do plano de consulta durante o tempo de execução, você poderá usar uma abordagem reativa. Ao detectar a regressão, altere o status desse planorejected para que o otimizador escolha um plano diferente e aprovado. Para obter mais informações, consulte Práticas recomendadas para o gerenciamento do plano de consulta do Aurora PostgreSQL (documentação do Aurora).

Como funciona o gerenciamento do plano de consulta?

Os planos recebem um dos seguintes status:approved,unapprovedpreferred, ourejected. O otimizador define o primeiro plano gerado para cada declaração gerenciadaapproved e, em seguida, define o status dos planos adicionais comounapproved. Posteriormente, você pode avaliar osunapproved planos e alterar seu status paraapproved,preferred, ourejected. Para obter mais informações, consulte Entendendo o gerenciamento do plano de consulta do Aurora PostgreSQL (documentação do Aurora).

Planos gerenciados podem ser capturados manual ou automaticamente. A abordagem mais comum é capturar automaticamente os planos para todas as declarações que são executadas duas ou mais vezes. No entanto, você também pode capturar manualmente planos para um conjunto específico de declarações. Para obter mais informações, consulte Capturando planos de execução do Aurora PostgreSQL (documentação do Aurora).

Depois de configurar um plano gerenciado, o otimizador usa oapproved planopreferred ou plano mínimo que seja válido e esteja habilitado em cada declaração gerenciada. Para obter informações detalhadas, consulte Como o otimizador escolhe que plano executar (documentação do Aurora).

Para obter instruções sobre como configurar o recurso QPM no Amazon Aurora compatível com PostgreSQL, consulte Gerenciando planos de execução de consultas para o Aurora PostgreSQL (documentação do Aurora).

Limitações

Para usar o QPM, você deve se certificar de que atende aos requisitos de instruções SQL suportadas, que suas instruções não fazem referência às relações do sistema e sua classe de instância de banco de dados tem vCPUs suficientes. Para obter mais informações, consulte Instruções SQL suportadas e limitações de gerenciamento do plano de consulta (documentação do Aurora).

Casos de uso do gerenciamento de planos de consultas

  • Prevenir a regressão do plano de consulta — Manter a versão do banco de dados atualizada oferece muitos benefícios, como desempenho e segurança aprimorados, acesso a novos recursos, correções para problemas conhecidos e conformidade com os requisitos normativos. No entanto, existe o risco de que as atualizações do banco de dados possam fazer com que algumas consultas sofram regressão de desempenho. Esse risco é maior com as principais atualizações de versões, pois elas podem conter alterações que podem não ser compatíveis com versões anteriores das consultas de aplicativos existentes. A implementação do QPM pode ajudar a evitar a regressão e estabilizar o desempenho durante as mudanças no sistema. Se você atualizar estatísticas, adicionar um índice, alterar parâmetros ou atualizar para uma nova versão do Amazon Aurora compatível com PostgreSQL, o QPM detectará um novo plano, mas continuará usando o plano aprovado, mantendo assim a estabilidade do plano.

  • Recursos de teste — Você pode visualizar o histórico do plano de todas as instruções SQL gerenciadas e avaliar se os novos recursos do PostgreSQL ou as mudanças no plano estão melhorando o desempenho. Em seguida, você pode decidir se deseja implementar esses recursos ou novos planos. Para obter mais informações, consulte Examinar planos de consultas do Aurora PostgreSQL na exibição dba_plans (documentação do Aurora).

  • Melhorar um plano — Em alguns casos, convém corrigir um plano abaixo do ideal, em vez de rejeitar, desabilitar ou excluí-lo. Para obter mais informações, consulte Corrigindo planos usando pg_hint_plan (documentação do Aurora).