查詢前等待事件語句,進行效能分析和優化

muxinqing發表於2014-04-23
用這個語句查詢使用者當前正在等待事件,把語句抽取出來。
SELECT s.username,
       s.osuser,
       s.sid||','||
       s.serial#,
       p.spid,
       s.lockwait,
       s.status,
       s.module,
       s.machine,
       s.program,
       S.EVENT,
       a.SQL_FULLTEXT,
       TO_CHAR(s.logon_Time, 'YYYY-MM-DD HH24:MI:SS') AS logon_time
  FROM v$session s, v$process p,v$sqlarea a
 WHERE s.paddr = p.addr and s.sql_hash_value = a.hash_value (+)
AND    s.sql_address    = a.address (+)
   and s.event not in ('smon timer',
                       'pmon timer',
                       'rdbms ipc message',
                       'Null event',
                       'parallel query dequeue',
                       'pipe get',
                       'client message',
                       'SQL*Net message to client',
                       'SQL*Net message from client',
                       'SQL*Net more data from client',
                       'dispatcher timer',
                       'virtual circuit status',
                       'lock manager wait for remote message',
                       'PX Idle Wait',
                       'PX Deq: Execution Msg',
                       'PX Deq: Table Q Normal',
                       'wakeup time manager',
                       'slave wait',
                       'i/o slave wait',
                       'jobq slave wait',
                       'null event',
                       'gcs remote message',
                       'gcs for action',
                       'ges remote message',
                       'queue messages',
                       'wait for unread message on broadcast channel',
                       'PX Deq Credit: send blkd',
                       'PX Deq: Execute Reply',
                       'PX Deq: Signal ACK',
                       'PX Deque wait',
                       'PX Deq Credit: need buffer',
                       'STREAMS apply coord waiting for slave message',
                       'STREAMS apply slave waiting for coord message',
                       'Queue Monitor Wait',
                       'Queue Monitor Slave Wait',
                       'wakeup event for builder',
                       'wakeup event for preparer',
                       'wakeup event for reader',
                       'wait for activate message',
                       'PX Deq: Par Recov Execute',
                       'PX Deq: Table Q Sample',
                       'STREAMS apply slave idle wait',
                       'STREAMS capture process filter callback wait for ruleset',
                       'STREAMS fetch slave waiting for txns',
                       'STREAMS waiting for subscribers to catch up',
                       'Queue Monitor Shutdown Wait',
                       'AQ Proxy Cleanup Wait',
                       'knlqdeq',
                       'class slave wait',
                       'master wait',
                       'DIAG idle wait',
                       'ASM background timer',
                       'KSV master wait',
                       'EMON idle wait',
                       'Streams AQ: RAC qmn coordinator idle wait',
                       'Streams AQ: qmn coordinator idle wait',
                       'Streams AQ: qmn slave idle wait',
                       'Streams AQ: waiting for time management or cleanup tasks',
                       'Streams AQ: waiting for messages in the queue',
                       'Streams fetch slave: waiting for txns',
                       'Streams AQ: deallocate messages from Streams Pool',
                       'Streams AQ: delete acknowledged messages',
                       'LNS ASYNC archive log',
                       'LNS ASYNC dest activation',
                       'LNS ASYNC end of log',
                       'LogMiner: client waiting for transaction',
                       'LogMiner: slave waiting for activate message',
                       'LogMiner: wakeup event for builder',
                       'LogMiner: wakeup event for preparer',
                       'LogMiner: wakeup event for reader',
                       'VKTM Logical Idle Wait',
                       'EMON slave idle wait',
                       'EMON slave idle wait',
                       'Space Manager: slave idle wait',
                       'Streams AQ: emn coordinator idle wait'
                      
                       )
   AND s.status = 'ACTIVE'
 ORDER BY s.username, s.osuser;  
上面抽取語句執行下面語句,把抽取語句填入,分析語句對語句進行優化。
例如:建立索引,重建索引,修改語句等..........
 SELECT s.username,s.osuser,s.sid||','||s.serial#,p.spid,s.lockwait,s.status,s.module,s.machine,s.program,S.EVENT,a.SQL_FULLTEXT,TO_CHAR(s.logon_Time, 'YYYY-MM-DD HH24:MI:SS') AS logon_time FROM v$session s, v$process p,v$sqlarea a WHERE s.paddr = p.addr and s.sql_hash_value = a.hash_value (+) AND    s.sql_address = a.address (+) and s.event not in ('smon timer','pmon timer','rdbms ipc message','Null event','parallel query dequeue','pipe get', 'client message','SQL*Net message to client', 'SQL*Net message from client','SQL*Net more data from client','dispatcher timer','virtual circuit status','lock manager wait for remote message','PX Idle Wait','PX Deq: Execution Msg','PX Deq: Table Q Normal','wakeup time manager','slave wait','i/o slave wait','jobq slave wait','null event','gcs remote message','gcs for action','ges remote message','queue messages','wait for unread message on broadcast channel','PX Deq Credit: send blkd','PX Deq: Execute Reply','PX Deq: Signal ACK','PX Deque wait','PX Deq Credit: need buffer','STREAMS apply coord waiting for slave message','STREAMS apply slave waiting for coord message', 'Queue Monitor Wait','Queue Monitor Slave Wait','wakeup event for builder','wakeup event for preparer','wakeup event for reader','wait for activate message','PX Deq: Par Recov Execute','PX Deq: Table Q Sample','STREAMS apply slave idle wait','STREAMS capture process filter callback wait for ruleset','STREAMS fetch slave waiting for txns','STREAMS waiting for subscribers to catch up','Queue Monitor Shutdown Wait','AQ Proxy Cleanup Wait','knlqdeq','class slave wait','master wait','DIAG idle wait', 'ASM background timer','KSV master wait','EMON idle wait', 'Streams AQ: RAC qmn coordinator idle wait','Streams AQ: qmn coordinator idle wait','Streams AQ: qmn slave idle wait','Streams AQ: waiting for time management or cleanup tasks','Streams AQ: waiting for messages in the queue','Streams fetch slave: waiting for txns','Streams AQ: delete acknowledged messages','LNS ASYNC archive log','LNS ASYNC dest activation','LNS ASYNC end of log','LogMiner: client waiting for transaction','LogMiner: slave waiting for activate message','LogMiner: wakeup event for builder','LogMiner: wakeup event for preparer','LogMiner: wakeup event for reader','VKTM Logical Idle Wait','EMON slave idle wait','EMON slave idle wait','Space Manager: slave idle wait','Streams AQ: emn coordinator idle wait')AND s.status = 'ACTIVE' ORDER BY s.username, s.osuser;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29065182/viewspace-1147792/,如需轉載,請註明出處,否則將追究法律責任。

相關文章