如何查看数据库最近执行的SQL语句?

Oracle查询最近执行的SQL语句。

select sql_text,last _ load _ time from v$SQL order by last _ load _ time desc;

SELECT sql_text,last _ load _ time FROM v$SQL WHERE last _ load _ time NOT NULL and SQL _ text like ' SELECT % ' ORDER BY last _ load _ time desc。

SELECT sql_text,last _ load _ time FROM v$SQL WHERE last _ load _ time NOT NULL and SQL _ text like ' update % ' ORDER BY last _ load _ time desc。

SELECT sql_text,last_load_time FROM v$SQL其中last _ load _ time不为空,last _ load _ time like ' 14-06-09% ' ORDER BY last _ load _ time desc;

-正在执行

选择a .用户名,a.sid,b.SQL_TEXT,b.SQL_FULLTEXT

从v $会话a,v$sqlarea b

其中a.sql地址= b .地址

-已执行

select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT

来自v$sqlarea b

其中b .第一次加载时间介于“2009-10-15/09:24:47”和

' 2009-10-15/09:24:47 '按b.FIRST_LOAD_TIME排序

(这种方式的好处是可以查看某段时间内执行的sql,sql_FULLTEXT包含完整的sql语句。)

其他的

select用户,程序,用户名,模式名,B . Cpu _时间,状态,B.SQL_TEXT

从V$SESSION A左连接V $ SQL B ON A . SQL _ ADDRESS = B . ADDRESS和A . SQL _ HASH _ VALUE = B . HASH _ VALUE order by B . CPU _ time desc

选择地址、sql_text、件

来自v $会话,v$sqltext

其中地址= sql_address

-而机器= & lt你的机器名& gt

按地址、件数排序

找出性能最差的前十个sql。

SELECT * FROM (select解析_用户_ID,执行,排序,

命令类型,磁盘读取,来自v$sqlarea的sql文本

order BY disk_reads DESC)其中ROWNUM & lt10 ;

查看正在运行的具有大量io的会话。

选择se.sid、se.serial#、pr。SPID,se .用户名,se .状态,

终端,程序,系统。模块,se.sql_address,st.event,st

p1text,si.physical_reads,

si . block _ changes FROM v $ session se,v$session_wait st,

v$sess_io si,v$process pr其中st.sid=se.sid和st。

sid=si.sid和se。PADDR=pr。ADDR和锡德& gt6和圣。

wait_time=0且st.event不像' %SQL% '那样按物理读取DESC排序