- Este tópico contém 8 respostas, 4 vozes e foi atualizado pela última vez 12 anos, 11 meses atrás por rman.
-
AutorPosts
-
18 de janeiro de 2012 às 8:26 pm #102510rmanParticipante
Boa tarde,
Como faço para descobrir quantos usuários estão conectados no momento no banco de dados Oracle 10g R2 (10.2.0.4.0) ?
Existe alguma view ou relatório que me traga a informação ? O ideal mesmo é sabe a media de usuários conectados…
18 de janeiro de 2012 às 8:46 pm #102514eversonpizaParticipanteBoa tarde,
Para saber quem esta conectado vc pode olhar na v$session.
Para saber a média, acho que vc pode olhar na v$sysmetric_summary, que mostra a média de várias métricas na ultima hora, uma das informações é o “Session Limit %”, que traz a porcentagem de sessoes usadas, definido pelo parametro de inicialização ‘sessions’, por exemplo, se seu sessions esta 200 e o “Session Limit %” esta em 50%, significa que vc teve em média 100 sessões conectadas….
18 de janeiro de 2012 às 8:47 pm #102515Douglas Paiva de SousaParticipanteO nome da view é v$session, você pode executar um select nesta view para coletar as informações que necessitar.
abaixo descrição da view.
Nome Nulo Tipo
SADDR RAW(8 BYTE)
SID NUMBER
SERIAL# NUMBER
AUDSID NUMBER
PADDR RAW(8 BYTE)
USER# NUMBER
USERNAME VARCHAR2(30)
COMMAND NUMBER
OWNERID NUMBER
TADDR VARCHAR2(16)
LOCKWAIT VARCHAR2(16)
STATUS VARCHAR2(8)
SERVER VARCHAR2(9)
SCHEMA# NUMBER
SCHEMANAME VARCHAR2(30)
OSUSER VARCHAR2(30)
PROCESS VARCHAR2(24)
MACHINE VARCHAR2(64)
PORT NUMBER
TERMINAL VARCHAR2(30)
PROGRAM VARCHAR2(48)
TYPE VARCHAR2(10)
SQL_ADDRESS RAW(8 BYTE)
SQL_HASH_VALUE NUMBER
SQL_ID VARCHAR2(13)
SQL_CHILD_NUMBER NUMBER
SQL_EXEC_START DATE
SQL_EXEC_ID NUMBER
PREV_SQL_ADDR RAW(8 BYTE)
PREV_HASH_VALUE NUMBER
PREV_SQL_ID VARCHAR2(13)
PREV_CHILD_NUMBER NUMBER
PREV_EXEC_START DATE
PREV_EXEC_ID NUMBER
PLSQL_ENTRY_OBJECT_ID NUMBER
PLSQL_ENTRY_SUBPROGRAM_ID NUMBER
PLSQL_OBJECT_ID NUMBER
PLSQL_SUBPROGRAM_ID NUMBER
MODULE VARCHAR2(64)
MODULE_HASH NUMBER
ACTION VARCHAR2(64)
ACTION_HASH NUMBER
CLIENT_INFO VARCHAR2(64)
FIXED_TABLE_SEQUENCE NUMBER
ROW_WAIT_OBJ# NUMBER
ROW_WAIT_FILE# NUMBER
ROW_WAIT_BLOCK# NUMBER
ROW_WAIT_ROW# NUMBER
TOP_LEVEL_CALL# NUMBER
LOGON_TIME DATE
LAST_CALL_ET NUMBER
PDML_ENABLED VARCHAR2(3)
FAILOVER_TYPE VARCHAR2(13)
FAILOVER_METHOD VARCHAR2(10)
FAILED_OVER VARCHAR2(3)
RESOURCE_CONSUMER_GROUP VARCHAR2(32)
PDML_STATUS VARCHAR2(8)
PDDL_STATUS VARCHAR2(8)
PQ_STATUS VARCHAR2(8)
CURRENT_QUEUE_DURATION NUMBER
CLIENT_IDENTIFIER VARCHAR2(64)
BLOCKING_SESSION_STATUS VARCHAR2(11)
BLOCKING_INSTANCE NUMBER
BLOCKING_SESSION NUMBER
FINAL_BLOCKING_SESSION_STATUS VARCHAR2(11)
FINAL_BLOCKING_INSTANCE NUMBER
FINAL_BLOCKING_SESSION NUMBER
SEQ# NUMBER
EVENT# NUMBER
EVENT VARCHAR2(64)
P1TEXT VARCHAR2(64)
P1 NUMBER
P1RAW RAW(8 BYTE)
P2TEXT VARCHAR2(64)
P2 NUMBER
P2RAW RAW(8 BYTE)
P3TEXT VARCHAR2(64)
P3 NUMBER
P3RAW RAW(8 BYTE)
WAIT_CLASS_ID NUMBER
WAIT_CLASS# NUMBER
WAIT_CLASS VARCHAR2(64)
WAIT_TIME NUMBER
SECONDS_IN_WAIT NUMBER
STATE VARCHAR2(19)
WAIT_TIME_MICRO NUMBER
TIME_REMAINING_MICRO NUMBER
TIME_SINCE_LAST_WAIT_MICRO NUMBER
SERVICE_NAME VARCHAR2(64)
SQL_TRACE VARCHAR2(8)
SQL_TRACE_WAITS VARCHAR2(5)
SQL_TRACE_BINDS VARCHAR2(5)
SQL_TRACE_PLAN_STATS VARCHAR2(10)
SESSION_EDITION_ID NUMBER
CREATOR_ADDR RAW(8 BYTE)
CREATOR_SERIAL# NUMBER
ECID VARCHAR2(64)
[/code]18 de janeiro de 2012 às 9:03 pm #102517rmanParticipante@DPaiva @eversonpiza
Já consultei a view V$SESSION, mas não sei quais os filtros aplicar para conseguir o resultado correto, pois filtrando pelo USERNAME do meu usuário que eu sei que tinha apenas 1 conexão a consulta me trouxe 2 registros. Quais filtros aplicar pra trazer a quantidade de conexões em tempo real ?
18 de janeiro de 2012 às 9:12 pm #102519leandrolbsParticipanteTente esses selects:
--Total sessions
select count(*) from v$session
where username is not null;--Total Sessions ACTIVE
select * from v$session
where username is not null
and status = 'ACTIVE';
18 de janeiro de 2012 às 9:17 pm #102520rmanParticipante@leandrolbs
Quando o STATUS está com INATIVE quer dizer que está conectado no banco mais no momento não enviou nenhuma SQL para o banco ?
18 de janeiro de 2012 às 9:24 pm #102521leandrolbsParticipantesim, a session está logada mas sem efetuar comandos sql no banco…
lembrando que a aplicação pode trabalhar com cache ….18 de janeiro de 2012 às 9:26 pm #102523Douglas Paiva de SousaParticipanteSe você quer saber quais SQL estão ativos no momento, faça um JOIN com a view v$open_cursor, utilizando a coluna SID. Acho que assim funciona.
18 de janeiro de 2012 às 9:39 pm #102524rmanParticipante@eversonpiza
A VIEW v$sysmetric_summary foi na medida, é possível aumentar o tempo ? Essa view faz parte do relatório AWR ?
-
AutorPosts
- Você deve fazer login para responder a este tópico.