Gosto de obter as últimas instruções executadas em meu banco de dados, juntamente com indicadores de desempenho.
Como tal, eu gosto de saber quais instruções SQL foram mais intensivas em CPU/DISK.
Gosto de obter as últimas instruções executadas em meu banco de dados, juntamente com indicadores de desempenho.
Como tal, eu gosto de saber quais instruções SQL foram mais intensivas em CPU/DISK.
Aqui está o SQL para fazer o trabalho. Aberto para julgamento.
Etapa 1: Determine os IDs de instalação e os IDs de usuário.
Passo 2:
Pode haver vários IDs e IDs de instância retornados. Portanto, cabe a escolha dos usuários sobre como usar esses dados em uma interface da web etc.
O console do Oracles Enterprise Monitor mostra toda uma riqueza de informações sobre quais consultas SQL estão consumindo o máximo de CPU, gargalos, atividade principal no banco de dados, SQLs de bloqueio e outros.
Para uma abordagem histórica, você pode usar os relatórios AWR da Oracle para identificar áreas relacionadas a você.
Você também pode usar
V$SQL
, existem várias colunas interessantesRUNTIME_MEM, EXECUTIONS, DISK_READS, SORTS, ELAPSED_TIME, SQL_FULLTEXT
etc.Isso forneceria as 10 principais instruções por leitura de disco (observação - isso é cumulativo para todas as execuções):
Se a instrução ainda estiver,
V$SQL_PLAN
você poderá obter um plano de explicação real para a consulta:Eu também gosto de usar
V$SQL_PLAN
, pois contém boas informações. Se o seustatistics_level=ALL
você pode usarV$SQL_PLAN_STATISTICS
.Para SQL recente:
Para história: