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.