create view sashnow as Select d.dbid, sysdate sample_time, s.sid "SESSION_ID", decode(w.wait_time, 0,'WAITING','ON CPU') "SESSION_STATE", s.serial# "SESSION_SERIAL#", s.user# "USER_ID", s.sql_address "SQL_ADDRESS", s.sql_hash_value "SQL_ID" , s.command "SQL_OPCODE" /* aka SQL_OPCODE */, s.type "SESSION_TYPE" , w.event "EVENT# ", w.seq# "SEQ#" /* xksuse.ksuseseq */, w.p1 "P1" /* xksuse.ksusep1 */, w.p2 "P2" /* xksuse.ksusep2 */, w.p3 "P3" /* xksuse.ksusep3 */, w.wait_time "WAIT_TIME" /* xksuse.ksusetim */, s.ROW_WAIT_OBJ# "CURRENT_OBJ#", s.ROW_WAIT_FILE# "CURRENT_FILE#", s.ROW_WAIT_BLOCK# "CURRENT_BLOCK#", -- s.ROW_WAIT_ROW# "CURRENT_ROW#", s.program "PROGRAM", s.module_hash "MODULE_HASH", /* ASH collects string */ s.action_hash "ACTION_HASH", /* ASH collects string */ s.fixed_table_sequence "FIXED_TABLE_SEQUENCE" /* FIXED_TABLE_SEQUENCE */ from v$session s , /* v$session */ v$session_wait w, /* v$session_wait */ v$database d where s.sid != ( select distinct sid from v$mystat where rownum < 2 ) and s.sid = w.sid and ( ( /* inactive & "on cpu"=> not on CPU */ w.wait_time != 0 and /* on CPU */ s.status = 'ACTIVE' ) or w.event not in /* waiting and the wait event is not idle */ ( 'queue monitor wait', 'null event', 'pl/sql lock timer', 'px deq: execution msg', 'px deq: table q normal', 'px idle wait', 'sql*net message from client', 'sql*net message from dblink', 'dispatcher timer', 'lock manager wait for remote message', 'pipe get', 'pmon timer', 'queue messages', 'rdbms ipc message', 'slave wait', 'smon timer', 'virtual circuit status', 'wakeup time manager', 'i/o slave wait', 'i/o slave wait', 'jobq slave wait', 'queue monitor wait', 'SQL*Net message from client' ) );