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!
Tráfego Oracle
-
- 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
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...
Através destas informações você consegue fazer algum agrupamento ou fechar em alguma data pra te facilitar isso...
-
- 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
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;
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;
-
- 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!
Fiz o teste com seu exemplo e ele me pede uma entrada de uma variavel ... que variavel seria esta? Obrigado mais uma vez!
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante