Analisar planos de execução Oracle usando o painel do Performance Insights - Amazon Relational Database Service

Analisar planos de execução Oracle usando o painel do Performance Insights

Ao analisar a carga de banco de dados em um banco de dados Oracle, talvez você queira saber quais planos estão contribuindo mais para a carga do banco de dados. Por exemplo, as principais instruções SQL em um determinado momento podem estar usando os planos mostrados na tabela a seguir.

SQL principal Plano

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 equijoin. 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 cortar consultas Oracle por eventos de espera e SQL principal, você pode separá-las pela dimensão do plano.

Para analisar planos de execução Oracle usando o console
  1. Abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Performance Insights.

  3. Escolha uma instância de banco de dados do Oracle. O painel do Performance Insights será exibido nessa instância de banco de dados.

  4. Na seção Database load (DB load) (Carga de banco de dados (carga de DB)), escolha Plans (Planos) o lado de Slice by (Separar por).

    O gráfico Média de sessões ativas mostra os planos usados pelas instruções SQL principais. Os valores de hash do plano aparecem à direita dos quadrados codificados por cores. Cada valor de hash identifica exclusivamente um plano.

    
					Separe por planos
  5. Role para baixo até a guia Top SQL (SQL principal).

    No exemplo a seguir, o resumo do SQL principal tem dois planos. Você pode dizer que é um resumo pelo ponto de interrogação na instrução.

    
					Escolha um plano de resumo
  6. Escolha o resumo para expandi-lo em suas instruções de componente.

    No exemplo a seguir, a instrução SELECT é uma consulta de resumo. As consultas de componentes no resumo usam dois planos diferentes. As cores dos planos correspondem ao gráfico de carga do banco de dados. O número total de planos no resumo é mostrado na segunda coluna.

    
					Escolha um plano de resumo
  7. Role para baixo e escolha dois Planos para comparar na lista de Planos para consulta de resumo.

    Você pode visualizar um ou dois planos para uma consulta por vez. A captura de tela a seguir compara os dois planos no resumo, com hash 2032253151 e hash 1117438016. No exemplo a seguir, 62% das sessões ativas médias que executam essa consulta de resumo estão usando o plano à esquerda, enquanto 38% estão usando o plano à direita.

    
					Compare os planos lado a lado

    Neste exemplo, os planos diferem de forma importante. A Etapa 2 do plano 2032253151 usa uma verificação de índice, enquanto o plano 1117438016 usa uma varredura de tabela completa. Para uma tabela com um grande número de linhas, uma consulta de uma única linha é quase sempre mais rápida com uma varredura de índice.

    
					Compare os planos lado a lado
  8. (Opcional) Escolha Copy (Copiar) para copiar o plano para a área de transferência ou Download (Baixar) para salvar o plano no disco rígido.