首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询Oracle正在执行跟执行过的SQL语句

2013-12-20 
查询Oracle正在执行和执行过的SQL语句---正在执行的select?a.username,?a.sid,b.SQL_TEXT,?b.SQL_FULLTEXT

查询Oracle正在执行和执行过的SQL语句

---正在执行的

select?a.username,?a.sid,b.SQL_TEXT,?b.SQL_FULLTEXT
??from?v$session?a,?v$sqlarea?b?
where?a.sql_address?=?b.address?
---执行过的
select?b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT
??from?v$sqlarea?b
where?b.FIRST_LOAD_TIME?between?'2009-10-15/09:24:47'?and
???????'2009-10-15/09:24:47'?order?by?b.FIRST_LOAD_TIME?
(此方法好处可以查看某一时间段执行过的sql,并且?SQL_FULLTEXT?包含了完整的?sql?语句)

其他
select?OSUSER,PROGRAM,USERNAME,SCHEMANAME,B.Cpu_Time,STATUS,B.SQL_TEXT?
from?V$SESSION?A?LEFT?JOIN?V$SQL?B?ON?A.SQL_ADDRESS=B.ADDRESS?AND?A.SQL_HASH_VALUE=B.HASH_VALUE?order?by?b.cpu_time?desc?


select?address,?sql_text,?piece?
??from?v$session,?v$sqltext?
where?address?=?sql_address?
??--?and?machine?=?<?you?machine?name?>?
order?by?address,?piece?

查找前十条性能差的sql.?

SELECT?*?FROM?(select?PARSING_USER_ID,EXECUTIONS,SORTS,?
COMMAND_TYPE,DISK_READS,sql_text?FROM?v$sqlarea?
order?BY?disk_reads?DESC?)where?ROWNUM<10?;?

查看占io较大的正在运行的session?

SELECT?se.sid,se.serial#,pr.SPID,se.username,se.status,?
se.terminal,se.program,se.MODULE,、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?WHERE?st.sid=se.sid?AND?st.?
sid=si.sid?AND?se.PADDR=pr.ADDR?AND?se.sid>6?AND?st.?
wait_time=0?AND?st.event?NOT?LIKE?'%SQL%'?ORDER?BY?physical_reads?DESC

热点排行