डेटा डिक्शनरी साइड में बहुत सारे टूल हैं जिनका आप उपयोग कर सकते हैं जैसे कि स्कीमा स्पाई
यह देखने के लिए कि कौन सी क्वेरी चल रही हैं, 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
;