O DBA Cockpit é uma ferramenta de monitoramento disponível como parte de todos os sistemas SAP baseados em ABAP. Parte dessa ferramenta é uma função EXPLAIN fácil de usar, que foi recentemente aprimorada com algumas novas funcionalidades:
-
Explain from section (também chamado de explain from cache)
-
Explain from activity
-
Download do plano de execução no formato db2exfmt
-
Coleta de seção atual ao chamar db2support
Deixe-me mostrar como eles funcionam - você pode achá-los úteis para sua própria análise de problemas de desempenho de declarações SQL e quando precisar enviar dados de monitoramento para o suporte da SAP.
A Função EXPLAIN no DBA Cockpit
No DBA Cockpit, você pode usar a função EXPLAIN para determinar o plano de execução de todas as declarações SELECT, INSERT, UPDATE ou DELETE. Como chegar lá? Bem, em qualquer sistema SAP baseado em SAP NetWeaver, simplesmente chame o DBA Cockpit usando a transação DBACOCKPIT. No DBA Cockpit, você tem diferentes opções para acessar a função EXPLAIN: Por exemplo, a partir do quadro de navegação, você pode escolher
Diagnósticos > EXPLAIN
. Na tela seguinte de Diagnósticos: EXPLAIN, insira uma declaração SQL e escolha
Explain
. Você também pode navegar para a função EXPLAIN a partir de telas onde as declarações SQL são exibidas:
Desempenho > Principais Declarações SQL, Desempenho > Cache SQL, Desempenho > Aplicações.
Além do DBA Cockpit, você também pode usar outras transações para executar um EXPLAIN, por exemplo,
Rastreamento de Desempenho
(transação ST05, ST05_OLD) ou
Análise de Transação Única
(transação ST12).
Se uma declaração SQL for explicada com sucesso, um plano de execução é mostrado no DBA Cockpit. O plano de execução é exibido como uma estrutura de árvore. Essa estrutura consiste em todos os objetos e operações de banco de dados que são realizados quando a declaração é executada.
Esta função EXPLAIN está disponível há algum tempo, então agora vamos falar um pouco sobre o histórico e depois sobre as novas funcionalidades.
Histórico
Como o EXPLAIN funciona? Para executar uma declaração SQL, o otimizador Db2 primeiro precisa preparar o plano de execução. O plano de execução basicamente descreve os objetos de banco de dados necessários e as operações realizadas para executar a declaração SQL. O plano de execução é armazenado no cache SQL. No banco de dados Db2, as seguintes funções Db2 estão disponíveis para analisar planos de execução:
-
EXPLAIN_FROM_SECTION analisa o plano de execução que já foi preparado e armazenado no cache SQL.
-
EXPLAIN recebe a declaração SQL como entrada e determina o plano de execução do zero.
-
EXPLAIN_FROM_ACTIVITY analisa o plano de execução de declarações SQL que violam um limite WLM (por exemplo, linhas lidas) durante a execução de uma declaração SQL.
Todas as funções têm em comum o fato de que armazenam a descrição do plano de execução nas chamadas tabelas de explicação. Essas tabelas de explicação são lidas pelo DBA Cockpit ou pela utilidade Db2 db2exfmt, que pode então exibir os planos de execução.
Anteriormente, o DBA Cockpit usava apenas a função EXPLAIN do Db2, que recebe a declaração SQL como entrada e determina o plano de execução do zero. No entanto, não havia funcionalidade no DBA Cockpit que exibisse os resultados das funções do Db2 EXPLAIN_FROM_SECTION ou EXPLAIN_FROM_ACTIVITY como planos de execução na interface do usuário. Isso mudou agora com novas Notas SAP e pacotes de suporte. Além disso, existem mais possibilidades de baixar planos de execução do DBA Cockpit.
Agora vamos falar sobre essas novas funcionalidades.
Visão Geral das Novas Funcionalidades
Aqui está uma visão geral de como as novas funcionalidades no DBA Cockpit funcionam juntas:
Com a Nota SAP
3049243
, agora você também pode usar o DBA Cockpit para exibir o plano de execução de uma declaração SQL preparada do cache SQL (EXPLAIN_FROM_SECTION, nº 1 na imagem). Com a Nota SAP
3094083
, agora você também pode exibir o plano de execução de uma declaração SQL que violou um limite WLM (EXPLAIN_FROM_ACTIVITY, nº 2 na imagem). As declarações SQL explicadas são mostradas na tela de explicação do DBA Cockpit (3).
A tela de explicação do DBA Cockpit é uma maneira perfeita de verificar e analisar interativamente o plano de execução de uma declaração SQL. No entanto, às vezes você pode querer baixar um plano de execução do DBA Cockpit, por exemplo, para enviá-lo ao suporte da SAP. Um download também é conveniente se você quiser comparar vários planos de execução usando uma ferramenta de comparação externa.
Isso nos leva a duas novas funções no DBA Cockpit: Primeiro, com a Nota SAP
3038068
, agora você pode exportar o plano de execução SQL conforme mostrado na tela de explicação do DBA Cockpit com todos os detalhes no formato de explicação Db2 em um arquivo (nº 4 na imagem). Em segundo lugar, há a função db2support no DBA Cockpit (5) que você pode usar para coletar e depois baixar todas as informações necessárias para o suporte da SAP em um arquivo db2support.zip. Este arquivo é então usado pelo suporte do Db2 para recriar e analisar uma declaração SQL problemática. O download do db2support