oracle查询执行过sql语句

一、oracle中查找某段时间执行的操作记录
select sql_text, module, first_load_time   from v$sqlarea

       where first_load_time > '2019-02-02/02:02:02' and first_load_time < '2019-02-02/02:02:02' 

           order by first_load_time


二、查看某一时间的执行过的所有sql
  select t.SQL_TEXT, t.FIRST_LOAD_TIME
   from v$sqlarea t
   where t.FIRST_LOAD_TIME like '2019-01-28%'
   order by t.FIRST_LOAD_TIME desc

三、查询当前执行sql的机器信息

SELECT SID, OSUSER, USERNAME, MACHINE, PROCESS

FROM V$SESSION

WHERE audsid = userenv( 'SESSIONID' );


四、查询执行某一时间,某台机器,执行的sql
1、select b.sql_text,a.osuser,a.sid,a.machine from v$session a ,v$sqlarea b where a.sql_hash_value = b.hash_value ;


2、select b.sql_text,a.osuser,a.sid,a.machine ,b.first_load_time from v$session a ,v$sqlarea b where a.sql_hash_value = b.hash_value  and b.first_load_time like '2019-01-29%' order by b.first_load_time desc ;


3、SELECT b.sid oracleID,
       b.username Oracle用户,
  b.serial#,
       spid 操作系统ID,
  paddr,
       sql_text 正在执行的SQL,
       b.machine 计算机名
FROM v$process a, v$session b, v$sqlarea c
WHERE a.addr = b.paddr
      AND b.sql_hash_value = c.hash_value;


五、oracle中查找某用户执行某张表的操作操作记录
1,首先查找表的操作记录

select * from v$sqlarea a where a.SQL_TEXT like '%TB_ACCT_SYSDATE%';
2,从上面的记录中找到update语句对应的sql_id

select * from v$sqltext a,v$sqlarea b where a.SQL_ID=b.SQL_ID and b.SQL_ID in('cq53826tk4u3c','afftnrfhu5utk') order by b.LAST_ACTIVE_TIME desc;
3,从上面的记录中找到最新的sql操作记录,然后找到用户名和主机

select * from sys.v_$session l,sys.v_$sql s where s.SQL_ID='cq53826tk4u3c' and l.USERNAME is not null;

你可能感兴趣的:(oracle查询执行过sql语句)