如何查看数据库最近执行的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排序