Visão geral da análise de planos de execução - Amazon Relational Database Service

Visão geral da análise de planos de execução

É possível usar o painel do Insights de Performance do Amazon RDS para saber quais planos contribuem mais para a carga de banco de dados das instâncias de banco de dados do Oracle e do SQL Server.

Por exemplo, as principais instruções SQL em um determinado momento podem estar usando os planos mostrados na tabela a seguir.

SQL principal Planejamento

SELECT SUM(amount_sold) FROM sales WHERE prod_id = 10

Plano A

SELECT SUM(amount_sold) FROM sales WHERE prod_id = 521

Plano B

SELECT SUM(s_total) FROM sales WHERE region = 10

Plano A

SELECT * FROM emp WHERE emp_id = 1000

Plano C

SELECT SUM(amount_sold) FROM sales WHERE prod_id = 72

Plano A

Com o recurso de plano do Performance Insights, você pode fazer o seguinte:

  • Descobrir quais planos são usados pelas principais consultas SQL.

    Por exemplo, você pode descobrir que a maior parte da carga de banco de dados é gerada por consultas usando o plano A e o plano B, com apenas uma pequena porcentagem usando o plano C.

  • Comparar planos diferentes para a mesma consulta.

    No exemplo anterior, três consultas são idênticas, exceto o ID do produto. Duas consultas usam o plano A, mas uma consulta usa o plano B. Para ver a diferença nos dois planos, você pode usar o Performance Insights.

  • Descobrir quando uma consulta mudou para um novo plano.

    Você pode ver que uma consulta usou o plano A e, em seguida, mudou para o plano B em um determinado momento. Houve uma alteração no banco de dados neste momento? Por exemplo, se uma tabela estiver vazia, o otimizador poderá escolher uma varredura de tabela completa. Se a tabela for carregada com um milhão de linhas, o otimizador poderá alternar para uma varredura de intervalo de índice.

  • Verifique as etapas específicas de um plano com o maior custo.

    Por exemplo, uma consulta de longa execução pode mostrar uma condição de união ausente em uma equi-join. Essa condição faltante força uma união cartesiana, que une todas as linhas de duas tabelas.

Você pode executar as tarefas anteriores usando o recurso de captura de plano do Performance Insights. Assim como você pode dividir consultas por eventos de espera e SQL principal, é possível separá-las pela dimensão do plano.