用户活动报表
使用用户审计表来产生报表可以给作为Oracle数据库管理员得你提供很多重要的信息。我们的第一个报表就是计算总的会话时间。
我们可以创建一个的简单查询来访问我们审计表,用于显示日期、时间、用户ID和用户使用系统的时间。虽然很简单,但是它可以给出每个用户在我们的系统上使用的时间。
现在,我们知道了登陆和注销的信息,那么我们如何搜集这些信息,并管理它们呢?让我们来看看可用的选择。
用户表的标准化
因为用户的登陆/注销触发器是两个分离的实体,所以我们在设计支持存放这些信息的表的时候就可以有多种选择。我们可以设计两个隔离的表格:一个用户登陆表和一个用户注销表。如果我们这样做了,那么在把这两个表连接起来的时候和判断哪个用户的登陆引起了哪个用户的注销等等事情的时候就会有困难。这个投机取巧的方法可能会给错误的产生制造机会。诸如,用户24在登陆前是如何注销的?等等。
现在,让我们考虑一个更好的选择。为了很好的使用表的信息,我们可以创建一个数据库,它里面包含一个单一的表,用于记录登陆和注销时间信息。这个方法就省去了连接表和关联数据的麻烦。另外,我们还将创建一个区域,用于计算每个用户在特定会话中所用去的时间。这个计算预先由触发器做好,这样就可以节省时间,并且可以创建一个丰富的报表,这个我们后面会提到。
这个信息在有不同用户ID使用系统不同区域的时候特别有用。例如,如果这些Oracle用户ID可以直接显示在屏幕上的话,Oracle管理员就可以得知Oracle应用程序每个区域的使用率。下面,让我们来看看另外一种类型的报表。
详细的用户登陆报表
我们也可以使用同样的表来显示在特定时间使用我们系统的用户数量。这个信息对于负责跟踪用户活动的Oracle数据库管理员特别有效。
通过在用户审计表中查询用户登陆信息,我们可以在任何给定时间获得精确的用户对话数量。
这些信息可以输入微软的Excel电子表格中,并扩展成为线条图表,如下所示。
正像你看到的,这个图表清楚地显示了在一天中每个小时用户的活动情况。一旦你获得了使用你系统的用户的活动情况,你就可以总结一周里每日的信息或是总结一日里每小时的信息。这就提供了关于用户使用系统的一个信号曲线,通过使用这些信号,我们可以描绘出用户的活动情况。例如,我们可能会发现在每个周三下午一点的时候用户活动非常频繁。通过使用用户审计表,我们可以很快地确定这些用户的并调整Oracle来适应情况的变化,以便于用户的使用。
跟踪
使用系统级触发器,相关的DDL、系统错误和用户活动都可以很容易地被捕捉到。然而,系统级触发器并不像想象中具有那么多功能,Oracle指出,正在加强系统级触发器的功能。
聪明地使用系统登陆/注销触发器可以提供一个很简单而且又很可靠的跟踪机制,用来跟踪Oracle用户的活动信息。对于那些长时间跟踪用户活动的Oracle管理员而言,用户审计表可以为他们提供丰富的用户信息,包括用户使用信息,这个信息可以以每日每时的状态或以每周每日的状态显示。