Analisar planos de execução usando o painel do Insights de Performance para o Amazon RDS
No painel do Insights de Performance do Amazon RDS, é possível encontrar informações sobre planos de execução para instâncias de banco de dados do Oracle e do SQL Server. É possível usar essas informações para saber quais planos contribuem mais para a carga do banco de dados.
Para analisar os planos de execução do Oracle ou do SQL Server, consulte os tópicos a seguir.
Analisar planos de execução
Visão geral da análise de planos de execução para o Amazon RDS
É 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.