2011-10-09 94 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