Oracle에서 활성 / 열린 연결을 나열하는 방법은 무엇입니까?


164

주어진 순간에 활성 연결을 보여줄 숨겨진 테이블, 시스템 변수 또는 무언가가 있습니까?

답변:


183

V$SESSION보기를 사용하십시오 .

V$SESSION 각 현재 세션에 대한 세션 정보를 표시합니다.


5
명령의 1 행에서 시작 오류 : select * from FROM v $ session 명령 행의 오류 1 열 : 14 오류 보고서 : SQL 오류 : ORA-00903 : 유효하지 않은 테이블 이름 00903. 00000- "유효하지 않은 테이블 이름"* 원인 : * 액션 :
— pistacchio 2016 년

3
권한이 없거나 DBA보기를 올바르게 설치하지 않았습니다.
— S.Lott

4
select_catalog_role 역할이 필요합니다.
— PaulJWilliams

2
v $ sqltext에 가입하여 세션의 현재 SQL도 가져올 수 있습니다.
— Alkini 2016 년

27
pistacchio, 당신은 SQL에 "FROM에서"2가 있습니다 : "select * from FROM v $ session"
— marcprux

116

더 완전한 답변을 보려면 다음을 참조 하십시오 : http://dbaforums.org/oracle/index.php?showtopic=16834

select
       substr(a.spid,1,9) pid,
       substr(b.sid,1,5) sid,
       substr(b.serial#,1,5) ser#,
       substr(b.machine,1,6) box,
       substr(b.username,1,10) username,
--       b.server,
       substr(b.osuser,1,8) os_user,
       substr(b.program,1,30) program
from v$session b, v$process a
where
b.paddr = a.addr
and type='USER'
order by spid; 

28

응용 프로그램 서버에서 데이터베이스로 들어오는 연결을 보려면 다음 명령을 사용하십시오.

SELECT username FROM v$session 
WHERE username IS NOT NULL 
ORDER BY username ASC;

간단하지만 효과적인.


6
select s.sid as "Sid", s.serial# as "Serial#", nvl(s.username, ' ') as "Username", s.machine as "Machine", s.schemaname as "Schema name", s.logon_time as "Login time", s.program as "Program", s.osuser as "Os user", s.status as "Status", nvl(s.process, ' ') as "OS Process id"
from v$session s
where nvl(s.username, 'a') not like 'a' and status like 'ACTIVE'
order by 1,2

이 쿼리는 모든 백그라운드 프로세스를 필터링하려고합니다.


5
Select count(1) From V$session
where status='ACTIVE'
/

5
select
  username,
  osuser,
  terminal,
  utl_inaddr.get_host_address(terminal) IP_ADDRESS
from
  v$session
where
  username is not null
order by
  username,
  osuser;

4
SO에 오신 것을 환영합니다! 당신의 대답에 대한 직관을 제공하십시오.
— vefthym


4

다음은 연결 수별로 정렬 된 운영 체제 사용자 목록을 제공하므로 과도한 자원 사용을 찾을 때 유용합니다.

select osuser, count(*) as active_conn_count 
from v$session 
group by osuser 
order by active_conn_count desc

1
select 
    count(1) "NO. Of DB Users", 
    to_char(sysdate,'DD-MON-YYYY:HH24:MI:SS') sys_time
from 
    v$session 
where 
    username is NOT  NULL;

1
이 코드 스 니펫은 문제를 해결할 수 있지만 설명을 포함하면 게시물의 품질을 향상시키는 데 실제로 도움이됩니다. 앞으로 독자들에게 질문에 대한 답변을 제공하므로 해당 사람들이 코드 제안의 이유를 모를 수도 있습니다.
— DimaSan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.