我之前曾在Teradata Performance工程部门工作。在Teradata中,我们有一个类似pdcrinfo.DBQLogTbl_hst的视图,其中包含TD DBA配置的过去3-4个月的会话级CPU I / O信息以及查询文本。
现在我对Oracle非常陌生。如果有人可以通过连接系统表来提供类似类型的视图名称或查询,那将是很好的 我们至少可以获取过去7天基于会话的CPU I / O并查询信息。 已经尝试形成1个查询,如下所示:
Select substr(c.sid || ',' || c.serial#,0,15) sid, c.USERNAME,c.PROGRAM,c.MACHINE,c.OSUSER,
c.LOGON_TIME,c.TERMINAL,c.sql_address,c.sql_hash_value,
ROUND (sum(b.CPU_TIME)) "CPU Usage",
cast(b.sql_fulltext as VARCHAR(1000)) Query
from
v$session c, sys.V_$SQL b
where
b.address=c.sql_address and c.sql_hash_value=b.hash_value and c.USERNAME='XXX_USER'
group by substr(c.sid || ',' || c.serial#,0,15),c.USERNAME,c.PROGRAM,
c.MACHINE,c.OSUSER,c.LOGON_TIME,c.TERMINAL,
c.sql_address,c.sql_hash_value,
cast(b.sql_fulltext as VARCHAR(1000))
Order by c.LOGON_TIME,sid,c.sql_address,c.sql_hash_value
但是似乎v $ session仅具有XXX_USER当前会话信息,而没有XXX_USER所有会话的历史记录。
感谢您的帮助。
谢谢。
答案 0 :(得分:0)
V$ACTIVE_SESSION_HISTORY
也许是
查看此处:
https://docs.oracle.com/cd/E11882_01/server.112/e40402/dynviews_1007.htm#REFRN30299
如果这样做没有帮助,请在dict
视图中查询所有视图及其显示内容的完整列表,以选择可能满足您需求的视图:
SELECT * FROM dict WHERE comments LIKE '%HISTORY%';
另一个选择是使用Grid Control AWR报告(如果已进行设置)。这是一个webby DBA工具。