我想找到所有在一段时间内运行的查询,用户名运行此查询(用户名不是会话ID) 我该怎么办?
答案 0 :(得分:0)
您可能想要这样的东西(未经过测试)。 WHERE子句有两个绑定变量,一个用于您的应用程序的用户名,另一个用于您想要检查所有这些的时间段。
select s.last_active_time, u.username, s.sql_id, c.cpu_time_total, s.sql_text
from v$sql s join all_users u on s.parsing_user_id = u.user_id
join dba_hist_sqlstat c on s.sql_id = c.sql_id
where username = :app_username
and last_active_time >= :from_date;
答案 1 :(得分:-1)
从下面你可以按照模式获得整个查询列表。检查它。
SELECT V.SQL_TEXT,
V.PARSING_SCHEMA_NAME,
V.FIRST_LOAD_TIME,
V.DISK_READS,
V.ROWS_PROCESSED,
V.ELAPSED_TIME,
V.SERVICE
FROM V$SQL V
WHERE TO_DATE(V.FIRST_LOAD_TIME,'YYYY-MM-DD hh24:mi:ss')>(TRUNC(SYSDATE))
AND PARSING_SCHEMA_NAME ='schema_name'