我以前在Teradata性能工程部门工作。在Teradata中,我们有一个类似pdcrinfo的视图。DBQLogTbl_hst,包含TD DBA配置的过去3-4个月的会话CPU I/O信息以及查询文本。
现在我是Oracle的新手。如果有人能通过连接系统表来提供类似的视图名称或查询,那就太好了我们可以获得会话方式的CPU I/O和查询信息,至少在过去7天。已经尝试形成如下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的所有会话的历史记录。
感谢您的帮助。
提前谢谢。
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%';
另一种选择是使用网格控制AWR报告(如果您已经设置了(。这是一个webby DBA工具。