AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 119594
Accepted
Inquisitor Shm
Inquisitor Shm
Asked: 2015-10-30 10:29:35 +0800 CST2015-10-30 10:29:35 +0800 CST 2015-10-30 10:29:35 +0800 CST

Como recuperar os principais indicadores de desempenho do Oracle em intervalos de 5 minutos dentro de um intervalo de tempo

  • 772

Tenho o Oracle 11g anexado a um ambiente de Teste de Desempenho. Um teste de desempenho dura duas horas. Após a execução, desejo extrair programaticamente uma variedade de indicadores-chave do banco de dados para armazenar os resultados.

Quais comandos eu executaria antes e depois do teste para coletar indicadores-chave, idealmente agrupados em totais de 5 minutos.

  • CPU
  • Memória
  • Solicitações SQL totais
  • E/S Lógica
  • E/S física

E indicadores de gargalo, (várias esperas de travas e trincos).

Aceito um link útil para um artigo ou uma coleção de comandos SQL úteis para explorar.

oracle performance
  • 2 2 respostas
  • 1359 Views

2 respostas

  • Voted
  1. Best Answer
    kevinskio
    2015-10-31T05:49:05+08:002015-10-31T05:49:05+08:00

    Essa consulta é executada no 11.1.0.7 Enterprise e fornece resultados semelhantes à página de desempenho do OEM Grid, que requer o pacote de diagnóstico. Há uma certa ironia na execução desse script por meio dos serviços de relatórios do SQL Server, que está além do escopo desta questão.

    SELECT TO_CHAR(SAMPLE_TIME, 'HH24:MI ') AS SAMPLE_TIME,
           ROUND(OTHER / 60, 3) AS OTHER,
           ROUND(CLUST / 60, 3) AS CLUST,
           ROUND(QUEUEING / 60, 3) AS QUEUEING,
           ROUND(NETWORK / 60, 3) AS NETWORK,
           ROUND(ADMINISTRATIVE / 60, 3) AS ADMINISTRATIVE,
           ROUND(CONFIGURATION / 60, 3) AS CONFIGURATION,
           ROUND(COMMIT / 60, 3) AS COMMIT,
           ROUND(APPLICATION / 60, 3) AS APPLICATION,
           ROUND(CONCURRENCY / 60, 3) AS CONCURRENCY,
           ROUND(SIO / 60, 3) AS SYSTEM_IO,
           ROUND(UIO / 60, 3) AS USER_IO,
           ROUND(SCHEDULER / 60, 3) AS SCHEDULER,
           ROUND(CPU / 60, 3) AS CPU,
           ROUND(BCPU / 60, 3) AS BACKGROUND_CPU
      FROM (SELECT TRUNC(SAMPLE_TIME, 'MI') AS SAMPLE_TIME,
                   DECODE(SESSION_STATE,
                          'ON CPU',
                          DECODE(SESSION_TYPE, 'BACKGROUND', 'BCPU', 'ON CPU'),
                          WAIT_CLASS) AS WAIT_CLASS
              FROM V$ACTIVE_SESSION_HISTORY
             WHERE SAMPLE_TIME > SYSDATE - INTERVAL '1'
             HOUR
               AND SAMPLE_TIME <= TRUNC(SYSDATE, 'MI')) ASH PIVOT(COUNT(*) 
      FOR WAIT_CLASS IN('ON CPU' AS CPU,'BCPU' AS BCPU,
    'Scheduler' AS SCHEDULER,
    'User I/O' AS UIO,
    'System I/O' AS SIO, 
    'Concurrency' AS CONCURRENCY,                                                                               
    'Application' AS  APPLICATION,                                                                                  
    'Commit' AS  COMMIT,                                                                             
    'Configuration' AS CONFIGURATION,                     
    'Administrative' AS   ADMINISTRATIVE,                                                                                 
    'Network' AS  NETWORK,                                                                                 
    'Queueing' AS   QUEUEING,                                                                                  
    'Cluster' AS   CLUST,                                                                                      
    'Other' AS  OTHER))
    ORDER BY 1  
    

    Esta consulta não é tão boa quanto a que o Grid exibe, mas está próxima. relatório SSRS Grade OEM

    • 0
  2. jmk
    2015-11-03T00:13:22+08:002015-11-03T00:13:22+08:00

    Sua melhor chance sem nenhuma licença sofisticada ou ferramentas de terceiros seria STATSPACK/PERFSTAT.

    Ele vem com a instalação do Oracle, a documentação pode ser encontrada em $ORACLE_HOME/rdbms/admin/spdoc.txt (Verificado com 12.1.0.2 e 11.2.0.4). Ele não gera gráficos sofisticados, é apenas texto.

    Você pode querer tentar oraSASH com simula ASH (daí o nome), então os scripts para ASH podem funcionar. Eu mesmo não funcionou com o oraSASH, então verifique você mesmo com cuidado.

    • 0

relate perguntas

  • Como encontrar as instruções SQL mais recentes no banco de dados?

  • Como posso consultar nomes usando expressões regulares?

  • Como determinar se um Índice é necessário ou necessário

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve