2011-10-09 30 views
1

如何編寫一個PL/SQL程序來計算並顯示oracle 11g中所有數據庫用戶的用戶名和平均會話時間?善意幫助計算oracle用戶平均會話時間

+0

select * from v $ session to start ... – Randy

+0

非常感謝,但是我如何找到用戶登錄以查找平均會話的次數 – peedee

+0

不確定人們爲什麼要投票關閉爲NARQ。關閉主題,因爲它屬於DBA.SE,也許。但這是一個完全可以理解的問題。 – APC

回答

4

默認情況下,Oracle不會審計用戶訪問權限等內容。有內置選項,但默認關閉。

要啓用Oracle的審計跟蹤,我們需要設置AUDIT_TRAIL參數。將其設置爲DB以將記錄寫入表中;這比查詢OS文件更方便(除非您的grep比您的SQL更好)。 Find out more

監視用戶的連接和斷開,問一個DBA發出以下聲明:

AUDIT SESSION; 

然後,你可以寫你的查詢關閉DBA_AUDIT_SESSION視圖。喜歡的東西:

select USERNAME 
     , avg(LOGOFF_TIME - TIMESTAMP) 
from DBA_AUDIT_SESSION 
group by USERNAME; 

注意,這是在; Y去給你有用的信息,如果你有舊斯庫爾命名的用戶帳戶的應用程序。具有連接池的Web應用程序將全部作爲同一用戶進行審覈,因此您需要編寫定製的日誌記錄工具。

+0

謝謝.. .. – peedee

+0

我從v $ session創建了一個新表,並從該表中計算出了平均會話時間。 – peedee