找到每个用户名的查询

时间:2016-08-06 11:42:19

标签: sql oracle monitoring performance-testing

我想找到所有在一段时间内运行的查询,用户名运行此查询(用户名不是会话ID)  我该怎么办?

2 个答案:

答案 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'