Tráfego Oracle

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
pedrovlf
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Sex, 16 Jan 2009 9:46 am
Localização: UDIA

Informações do Ambiente:
* Versão do Oracle: 10g
* Sistema Operacional: Linux

Srs,

Possuo um sistema de monitoramento que pega informações dos servidores pelo SNMP, gostaria de saber se atraves do SQLPLUS se existe algum comando SQL que eu consiga pegar o tráfego do SGBD, preciso saber o horário que tenho mais querys, transações, etc e através do meu sistema vou coletar essas infos que vão ser geradas pelos comandos no sqlplus, tem como? Obrigado!
marcelo_nunes
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Seg, 08 Set 2008 7:35 pm
Localização: Ribeirão Preto - SP
Marcelo Nunes
Analista/Desenvolvedor Oracle

Cara, não sei se é necessáriamente isso que você previsa, mas tem uma view do dicionário de dados que se chama "v$sqlarea" nessa view você consegue visualizar todas as queries executadas no banco tal como o horário delas e por aí vai...
Através destas informações você consegue fazer algum agrupamento ou fechar em alguma data pra te facilitar isso...
marcelo_nunes
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Seg, 08 Set 2008 7:35 pm
Localização: Ribeirão Preto - SP
Marcelo Nunes
Analista/Desenvolvedor Oracle

Essa query por exemplo te mostraria as n queries que foram executadas no banco que consumiram um maior recurso de processador.

select *
from (select v.cpu_time
, v.executions
, trunc((v.cpu_time/decode(v.executions,0,1,v.executions))) ratio
, v.sharable_mem
, v.persistent_mem
, v.runtime_mem
, v.first_load_time
, to_char(v.last_load_time , 'dd/mm/yyyy hh24:mi') last_load_time
, d.username
, a.object_name
, decode(v.command_type, 2, 'INSERT', 3, 'SELECT', 6, 'UPDATE', 7, 'DELETE', null) tipo_comando
, v.sql_text
, v.address
from v$sqlarea v
, dba_users d
, dba_objects a
where d.user_id = v.parsing_user_id
and v.program_id = a.object_id(+)
and v.is_obsolete = 'N'
order by v.sharable_mem desc)
where rownum < '&listar' + 1
order by 3 desc;
pedrovlf
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Sex, 16 Jan 2009 9:46 am
Localização: UDIA

obrigado pela dica! Porém eu queria ter info apenas do hórario de "pico" que tem mais requisões em uma determinada data, não preciso dos querys ... tem como?

Fiz o teste com seu exemplo e ele me pede uma entrada de uma variavel ... que variavel seria esta? Obrigado mais uma vez!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante