كيفية العثور على المؤشرات الحالية مفتوحة في أوراكل

StackOverflow https://stackoverflow.com/questions/1010898

  •  06-07-2019
  •  | 
  •  

سؤال

ما هو الاستعلام إلى العثور على أي. من المؤشرات المفتوحة الحالية في مثيل أوراكل؟

وأيضا، ما هو تردد دقة / تحديث هذه البيانات؟

وأستخدمه أوراكل 10gR2

هل كانت مفيدة؟

المحلول

ومجموع المؤشرات المفتوحة، من خلال الدورة:

select a.value, s.username, s.sid, s.serial#
from v$sesstat a, v$statname b, v$session s
where a.statistic# = b.statistic#  and s.sid=a.sid
and b.name = 'opened cursors current';

المصدر: http://www.orafaq.com/node/758

وبقدر ما أعرف الاستفسارات على وجهات نظر $ ضد تقوم على شبه الجداول ( "س $" الجداول) التي تشير مباشرة إلى الأجزاء ذات الصلة من SGA، لذلك لا يمكنك الحصول على أكثر دقة من ذلك؛ ولكن هذا يعني أيضا أنه من نقطة في الوقت المناسب (أي قراءة القذرة).

نصائح أخرى

select  sql_text, count(*) as "OPEN CURSORS", user_name from v$open_cursor
group by sql_text, user_name order by count(*) desc;

ويبدو أن العمل بالنسبة لي.

إليك كيفية العثور المؤشرات المفتوحة التي تم تحليلها. تحتاج إلى تسجيل الدخول كمستخدم مع إمكانية الوصول إلى الخامس $ open_cursor وجلسة الخامس $.

COLUMN USER_NAME FORMAT A15

SELECT s.machine, oc.user_name, oc.sql_text, count(1) 
FROM v$open_cursor oc, v$session s
WHERE oc.sid = s.sid
GROUP BY user_name, sql_text, machine
HAVING COUNT(1) > 2
ORDER BY count(1) DESC
;

إذا يمنحك جزء من النص SQL لذلك يمكن أن تكون مفيدة لتحديد التطبيقات تتسرب منها المياه. إذا لم يتم تحليل المؤشر، فإنه لا تظهر هنا. لاحظ أن Oralce وأحيانا تبقى الأمور مفتوحة لفترة أطول مما تفعله.

1) يجب أن يكون اسم المستخدم الخاص بك الوصول ديسيبل تميز الكلية 2)

select sum(a.value) total_cur, avg(a.value) avg_cur, max(a.value) max_cur, 
 s.username, s.machine
 from v$sesstat a, v$statname b, v$session s 
 where a.statistic# = b.statistic# and s.sid=a.sid
 and b.name = 'opened cursors current' 
 group by s.username, s.machine
 order by 1 desc;

وأوراكل لديه صفحة لهذه المشكلة مع SQL والخلل الاقتراحات.

و"استكشاف الأخطاء وإصلاحها المفتوحة قضايا المؤشر" http://docs.oracle.com/cd/E40329_01 /admin.1112/e27149/cursor.htm#OMADM5352

وأنا استخدم شيئا من هذا القبيل:

select 
  user_name, 
  count(*) as "OPEN CURSORS" 
from 
  v$open_cursor 
group by 
  user_name;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top