आप ओरेकल डेटाबेस पर SQL निष्पादन कैसे दिखाते हैं?


26

आप उस SQL ​​को कैसे दिखा सकते हैं जो वर्तमान में oracle db पर निष्पादित हो रही है?

उपयोगी होने वाली अतिरिक्त जानकारी में उपयोगकर्ता, सत्र आईडी आदि शामिल होंगे।

जवाबों:


35

अधिकांश जानकारी v $ सत्र में उपलब्ध है ... और SQL पाठ को v $ sql या v $ sqltext_with_newlines से पकड़ा जा सकता है ...

यहाँ एक प्रश्न है कि मैं अक्सर उस प्रारूप का उपयोग करता हूँ, इन-फ्लाइट एसक्यूएल, जो सबसे लंबे समय तक चल रहा है।

-- In Flight SQL 
SELECT nvl(ses.username,'ORACLE PROC')||' ('||ses.sid||')' USERNAME,
       SID,   
       MACHINE, 
       REPLACE(SQL.SQL_TEXT,CHR(10),'') STMT, 
      ltrim(to_char(floor(SES.LAST_CALL_ET/3600), '09')) || ':'
       || ltrim(to_char(floor(mod(SES.LAST_CALL_ET, 3600)/60), '09')) || ':'
       || ltrim(to_char(mod(SES.LAST_CALL_ET, 60), '09'))    RUNT 
  FROM V$SESSION SES,   
       V$SQLtext_with_newlines SQL 
 where SES.STATUS = 'ACTIVE'
   and SES.USERNAME is not null
   and SES.SQL_ADDRESS    = SQL.ADDRESS 
   and SES.SQL_HASH_VALUE = SQL.HASH_VALUE 
   and Ses.AUDSID <> userenv('SESSIONID') 
 order by runt desc, 1,sql.piece;

इन फ्लाइट एसक्यूएल का अर्थ क्या है?
— टोह

इन-फ़्लाइट = वर्तमान में एक ऑरेकल डेटाबेस पर चल रहा है, या इस मामले में वर्तमान में v $ सत्र और स्थिति = 'सक्रिय' में उपलब्ध है
— डेविड मान

9

अच्छा जवाब यहाँ मिला ।

निम्न वर्ग निष्पादित करें:

select x.sid
      ,x.serial#
      ,x.username
      ,x.sql_id
      ,x.sql_child_number
      ,optimizer_mode
      ,hash_value
      ,address
      ,sql_text
from   v$sqlarea sqlarea
      ,v$session x
where  x.sql_hash_value = sqlarea.hash_value
and    x.sql_address    = sqlarea.address
and    x.username       is not null;

यदि आउटपुट अपठनीय है, तो LINESIZE बदलें ( यहाँ से लें ):

SET LINESIZE 20000

यदि ऊपर दिया गया sql काम नहीं करता है, तो आपको sysdba के रूप में लॉग इन करना पड़ सकता है:

sqlplus '/as sysdba'

गुड
— आंसर की

@ गेरैट I ने लिंक को कैश्ड आर्काइव में अपडेट किया।
— क्लार्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.