Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

वास्तविक Oracle SQL स्टेटमेंट को कैसे देखें जिसे निष्पादित किया जा रहा है

डेटा डिक्शनरी साइड में बहुत सारे टूल हैं जिनका आप उपयोग कर सकते हैं जैसे कि स्कीमा स्पाई

यह देखने के लिए कि कौन सी क्वेरी चल रही हैं, sys.v_$sql और sys.v_$sqltext को देखें। आपको sys.all_users तक पहुंच की भी आवश्यकता होगी

एक बात ध्यान देने योग्य है कि पैरामीटर का उपयोग करने वाली क्वेरी

. जैसी प्रविष्टियों के साथ एक बार दिखाई देंगी
and TABLETYPE=’:b16’

जबकि अन्य जो कई बार दिखाई नहीं देंगे जैसे:

and TABLETYPE=’MT’

शीर्ष 20 डिस्क्रेड हॉग को खोजने के लिए कार्रवाई में इन तालिकाओं का एक उदाहरण निम्न SQL है। आप WHERE rownum <=20 . को हटाकर इसे बदल सकते हैं और शायद मॉड्यूल द्वारा ऑर्डर करें . जोड़ें . आप अक्सर पाते हैं कि मॉड्यूल आपको एक अस्पष्ट सुराग देगा कि कौन सा सॉफ़्टवेयर क्वेरी चला रहा है (उदाहरण:"TOAD 9.0.1.8", "JDBC थिन क्लाइंट", "[email protected] (TNS V1-V3)" आदि)

SELECT 
 module, 
 sql_text, 
 username, 
 disk_reads_per_exec, 
 buffer_gets, 
 disk_reads, 
 parse_calls, 
 sorts, 
 executions, 
 rows_processed, 
 hit_ratio, 
 first_load_time, 
 sharable_mem, 
 persistent_mem, 
 runtime_mem, 
 cpu_time, 
 elapsed_time, 
 address, 
 hash_value 
FROM 
  (SELECT
   module, 
   sql_text , 
   u.username , 
   round((s.disk_reads/decode(s.executions,0,1, s.executions)),2)  disk_reads_per_exec, 
   s.disk_reads , 
   s.buffer_gets , 
   s.parse_calls , 
   s.sorts , 
   s.executions , 
   s.rows_processed , 
   100 - round(100 *  s.disk_reads/greatest(s.buffer_gets,1),2) hit_ratio, 
   s.first_load_time , 
   sharable_mem , 
   persistent_mem , 
   runtime_mem, 
   cpu_time, 
   elapsed_time, 
   address, 
   hash_value 
  FROM
   sys.v_$sql s, 
   sys.all_users u 
  WHERE
   s.parsing_user_id=u.user_id 
   and UPPER(u.username) not in ('SYS','SYSTEM') 
  ORDER BY
   4 desc) 
WHERE
 rownum <= 20;

ध्यान दें कि यदि क्वेरी लंबी है .. आपको v_$sqltext को क्वेरी करना होगा। यह पूरी क्वेरी को स्टोर करता है। आपको ADDRESS और HASH_VALUE को देखना होगा और सभी टुकड़ों को उठाना होगा। जैसे:

SELECT
 *
FROM
 sys.v_$sqltext
WHERE
 address = 'C0000000372B3C28'
 and hash_value = '1272580459'
ORDER BY 
 address, hash_value, command_type, piece
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टेबल और ट्रांजैक्शन एपीआई के बीच अंतर को समझना

  2. क्या मुझे Oracle पर विदेशी कुंजियों पर अनुक्रमणिका बनाने की आवश्यकता है?

  3. ORA-12170:TNS:कनेक्ट टाइमआउट हुआ

  4. जावा:ऑरैकल डेटाबेस में संग्रहीत कार्यविधि को कॉल करना

  5. ओरेकल पीएलएसक्यूएल साक्षात्कार प्रश्न