查询Oracle正在执行和执行过的SQL语句
1、正在执行的
select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea b where a.sql_address = b.address;
2、执行过的(此方法好处可以查看某一时间段执行过的sql,并且 SQL_FULLTEXT 包
select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT from v$sqlarea b where b.FIRST_LOAD_TIME between '2018-04-09/09:24:47' and '2018-04-09/16:24:47' order by b.FIRST_LOAD_TIME;
3、查找前十条性能差的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;