Có bất kỳ bảng ẩn, biến hệ thống hoặc một cái gì đó để hiển thị các kết nối hoạt động trong một thời điểm nhất định?
Có bất kỳ bảng ẩn, biến hệ thống hoặc một cái gì đó để hiển thị các kết nối hoạt động trong một thời điểm nhất định?
Câu trả lời:
Sử dụng V$SESSION
chế độ xem.
V$SESSION
hiển thị thông tin phiên cho mỗi phiên hiện tại.
Để có câu trả lời đầy đủ hơn, hãy xem: 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;
Khi tôi muốn xem các kết nối đến từ máy chủ ứng dụng của chúng tôi đến cơ sở dữ liệu, tôi sử dụng lệnh sau:
SELECT username FROM v$session
WHERE username IS NOT NULL
ORDER BY username ASC;
Đơn giản mà hiệu quả.
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
Truy vấn này cố gắng lọc ra tất cả các quy trình nền.
select
username,
osuser,
terminal,
utl_inaddr.get_host_address(terminal) IP_ADDRESS
from
v$session
where
username is not null
order by
username,
osuser;
select status, count(1) as connectionCount from V$SESSION group by status;
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;