কিভাবে ডাটাবেসের মধ্যে সর্বশেষ এসকিউএল বিবৃতি খুঁজে পেতে?


25

আমি পারফরম্যান্স সূচকগুলির সাথে আমার ডাটাবেসের মধ্যে সর্বশেষ সম্পাদিত বিবৃতি পেতে চাই।

এর মতো, আমি জানতে চাই, কোন এসকিউএল বিবৃতি সর্বাধিক সিপিইউ / ডিস্ক নিবিড় ছিল।


উত্তর:


17

কাজটি করার জন্য এখানে এসকিউএল রয়েছে। পরীক্ষার জন্য উন্মুক্ত।

পদক্ষেপ 1: ইনস্টল্যাটিন আইডি এবং ব্যবহারকারীর আইডি নির্ধারণ করুন।

SELECT inst_id,sid FROM gv$session WHERE username='<ENTER-USERNAME>';

ধাপ ২:

SELECT 
      s.sid
     ,s.CLIENT_INFO
     ,s.MACHINE
     ,s.PROGRAM
     ,s.TYPE
     ,s.logon_time
     ,s.osuser
     ,sq.sorts
     ,sq.DISK_READS
     ,sq.BUFFER_GETS
     ,sq.ROWS_PROCESSED
     ,sq.SQLTYPE
     ,sq.SQL_TEXT
 FROM gv$session s    
    , gv$sql sq
WHERE s.SQL_HASH_VALUE = sq.HASH_VALUE
  AND s.inst_id = :inst_id -- replace with instID from above
  AND s.sid = :sid -- replace with ID from above
  AND sq.inst_id = s.inst_id

একাধিক আইডি থাকতে পারে এবং উদাহরণ আইডি ফিরে এসেছে। সুতরাং এটি কোনও ওয়েব ইন্টারফেস ইত্যাদিতে কীভাবে এই ডেটা ব্যবহার করবেন সে সম্পর্কে ব্যবহারকারীদের পছন্দ to


কেবলমাত্র ছোট দ্রষ্টব্য: ওরাকল in... AND (s.inst_id, s.sid) in ( (:id1, :sid1), (:id2, :sid2), ... )
টিউপস

1
'inst_id' উদাহরণস্বরূপ আইডির অর্থ দাঁড়ায়, এটি আইডিনোটি ইন্সটল করে না in
चमत्कार 173

13

ওরাকলস এন্টারপ্রাইজ মনিটর কনসোল তথ্যের পুরো সম্পদ দেখায় যে এসকিউএল কোয়েরিগুলি সর্বাধিক সিপিইউ, বাধা, ডাটাবেসে শীর্ষস্থানীয় ক্রিয়াকলাপ, এসকিউএল ইত্যাদি বন্ধ করে দিচ্ছে।

একটি historical তিহাসিক পদ্ধতির জন্য, আপনি নিজের বিষয়ে পিন পয়েন্ট করতে ওরাকলের এডাব্লুআর রিপোর্টগুলি ব্যবহার করতে পারেন ।

বিকল্প পাঠ

এখানে চিত্র বর্ণনা লিখুন


1
কৌতূহলের বাইরে - এডাব্লুআর হ'ল সমস্ত ওরাকল লাইসেন্সের জন্য উপলব্ধ একটি সরঞ্জাম যা আমি কেবল কমান্ড লাইনের মাধ্যমে ব্যবহার করতে পারি?
সেবাস্তিয়ান রথ

2
দুঃখিত, আমার এটি উল্লেখ করা উচিত ছিল - যা আমি জানি, এডাব্লুআরটির একটি পৃথক লাইসেন্সিং দরকার - ওরাকল টিউনিং এবং ডায়াগনস্টিক প্যাক । আমি এন্টারপ্রাইজ ম্যানেজার কনসোল থেকে এডাব্লুআর ব্যবহার করতে পছন্দ করি - এন্টারপ্রাইজ ম্যানেজার কনসোলটি ব্যবহার করার জন্য আমাকে বিশেষাধিকার (!) দিয়েছি। আমি এটিও দেখতে পেয়েছি যে আপনি এসকিউএলগুলি নিরীক্ষণের জন্য এসকিউএল বিকাশকারী ব্যবহার করতে পারেন তবে তার জন্য উপরের লাইসেন্সের প্রয়োজন
সত্যজিৎ ভাট

1
ওরাকল এন্টারপ্রাইজ ম্যানেজার (ওএম) খুব সুন্দর। আমরা অটো-রিফ্রেশ গ্রাফের সাথে রিয়েল-টাইমে আমাদের ডাটাবেস স্বাস্থ্য পর্যবেক্ষণ করতে পারি। আমরা আমাদের প্রাথমিক ডাটাবেস 24x7 এর জন্য ওএম প্রদর্শন করে একটি প্রাচীরের সাথে ঝুলন্ত একটি বড় মনিটর পেয়েছি এবং সমস্যাগুলি হওয়ার কারণে এটি সনাক্তকরণে এটি অত্যন্ত উপকারী।
স্কটচেয়ার

4

আপনি ব্যবহার করতে পারেন V$SQL, এখানে বেশ কয়েকটি আকর্ষণীয় কলাম রয়েছে RUNTIME_MEM, EXECUTIONS, DISK_READS, SORTS, ELAPSED_TIME, SQL_FULLTEXTetc.

এটি আপনাকে ডিস্ক রিডের মাধ্যমে শীর্ষস্থানীয় 10 টি স্টেটমেন্ট দেবে (দ্রষ্টব্য - এটি সমস্ত মৃত্যুদন্ড কার্যকর করার জন্য সংশ্লেষক):

select sql_id,child_number from
(
select sql_id,child_number from v$sql
order by disk_reads desc
)
where rownum<11

যদি বিবৃতিটি এখনও থাকে তবে V$SQL_PLANআপনি ক্যোয়ারির জন্য একটি প্রকৃত ব্যাখ্যা পরিকল্পনা পেতে পারেন:

select * from table(dbms_xplan.display_cursor('sql_id',child_number));

আমি V$SQL_PLANএটি ব্যবহার করতে চাই কারণ এতে ভাল তথ্য রয়েছে। আপনি যদি statistics_level=ALLব্যবহার করতে পারেন V$SQL_PLAN_STATISTICS


2

সাম্প্রতিক এসকিউএল জন্য:

select * from v$sql

ইতিহাসের জন্য:

select * from dba_hist_sqltext
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.