كيف يمكن قفل طاولات المستخدم على أوراكل?
-
13-12-2019 - |
سؤال
لدي تتبع من جهاز حيث يبدو أن الاستعلام التالي معلق لعدة أيام:
SELECT table_name FROM user_tables
ما الذي يمكن أن يولد مثل هذا القفل?لا يمكن للمستخدمين تعديل هذا الجدول;وكان هناك الكثير من الحالات اللاحقة لهذا الاستعلام التي تم تشغيلها بنجاح.
المحلول
لذا ، بما أن الحالة لم تعد موجودة ، فلا توجد طريقة لمعرفة ما حدث.
ومع ذلك ، في المستقبل ، إذا حدث هذا أو شيء مشابه مرة أخرى ، فستحتاج إلى استخدام واجهة انتظار أوراكل.هذا هو ، انظر إلى V$SESSION
.
أولا ، ستحتاج إلى تحديد ما إذا كانت العملية تدور (أي على وحدة المعالجة المركزية) أو تمنع (أي الانتظار في حدث انتظار).طريقة لتحديد ذلك ، هو أن ننظر إلى STATE
العمود:
- إذا كانت الدولة
'WAITING'
, ، ثم يتم حظر الجلسة.إذا كان الأمر كذلك ، فيجب أن يصف عمود الحدث الحدث الذي تنتظره الجلسة. - إذا كانت الدولة هي شيء آخر غير 'الانتظار' ، ثم الدورة على وحدة المعالجة المركزية ، وعمود الحدث هو آخر شيء أنه انتظر على.
- إذا كانت الدولة
'WAITED KNOWN TIME'
, ، ثم وقت الانتظار هو الوقت المنتظر بالسنتي ثانية. - إذا كانت الدولة
'WAITED SHORT TIME'
, ، ثم انتظرت الجلسة أقل من سنتي ثانية. - إذا كانت الدولة
'WAITED UNKNOWN TIME'
, ، ثم الوقت المنتظر غير معروف لأنه تم تعيين الإحصائيات الزمنية على خطأ للجلسة.
- إذا كانت الدولة
نأمل أن يساعد.
لا تنتمي إلى StackOverflow