Oracle 如何将SQL查询追溯到发出查询的用户

Oracle 如何将SQL查询追溯到发出查询的用户,oracle,oracle11g,crystal-reports,business-objects,Oracle,Oracle11g,Crystal Reports,Business Objects,我们有一个Oracle 11g数据库,Business Objects用户使用它进行报告。 我们使用Oracle DBA_HIST表确定了执行时间最长的查询,并发现这些查询是由Web Intelligence或Crystal reports发布的。现在,我们想将这些查询追溯到发布它们的BO用户。Oracle只提供发出查询的架构名称。我知道我们可以使用BO审计表来跟踪BO中的用户,但是如何将Oracle DBA_HIST数据与BO审计表数据相匹配。还是有其他的方法 大多数crystal repor

我们有一个Oracle 11g数据库,Business Objects用户使用它进行报告。 我们使用Oracle DBA_HIST表确定了执行时间最长的查询,并发现这些查询是由Web Intelligence或Crystal reports发布的。现在,我们想将这些查询追溯到发布它们的BO用户。Oracle只提供发出查询的架构名称。我知道我们可以使用BO审计表来跟踪BO中的用户,但是如何将Oracle DBA_HIST数据与BO审计表数据相匹配。还是有其他的方法

大多数crystal reports用户使用自己的查询直接查询数据库,而不使用任何universe,因此不可能使用END_SQL函数将BO用户名作为注释添加到所有SQL语句中


感谢您的帮助。

您是否查看了V$ACTIVE\u SESSION\u历史记录?它将让您看到一个时间范围内的活动,并将其绑定到特定的机器和端口。还提供了SQL\u ID,以便您可以查找特定的查询。要完成Stillgar回答,请注意V$ACTIVE\u SESSION\u历史记录是诊断包的一部分,您需要拥有查询此视图的许可证。这是事后调查问题的最好方法,如果可以的话就使用它。谢谢大家。我的问题是,我想将该SQL\u ID追溯到发出查询的Business objects用户。当业务对象用户通过模式连接时,oracle只给我该模式的ID。好的,它连接到一个模式,但他是从工作站上的应用程序连接的吗?如果是,您可以查看“机器”列,您可以看到它的工作站。如果他使用共享模式通过应用服务器,您将无法知道。谢谢。用户使用共享模式浏览应用程序服务器。