هل PHP Oracle شركة تنمية نفط عمان تعليق على حذف ؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

هذه معلقة في Php (5.2.6-Win32 + Oracle10g) هل هو علة أو أنا أفعل شيئا جوهريا خاطئا ؟

try {
    $conn = new PDO($DB,$USER,$PASSWORD);
    $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    //connected
    try {
        $conn->exec("DELETE FROM MY_TABLE");
        echo "done";
...

ملاحظة: أنا لا أعرف إذا كان هذا خطأ أم لا, أعتقد أنه هو.ومع ذلك لم أجد تقرير علة هذا بعد بحث سريع.أنا يمكن أن تفعل شيئا خاطئا ، لذا فكرت أن تسأل هنا أولا و للأجيال القادمة في حالة شخص آخر لديه مشكلة مشابهة.

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

المحلول

هل هناك أنشطة أخرى تسير على في قاعدة البيانات في نفس الوقت ؟ إذا كان الجواب نعم ، كنت أشك في المآزق.بعض غير ملتزم DML الصفقة(s) قد قفل بعض الصفوف من MY_TABLE.

إذا كنت لا تحتاج إلى تراجع القدرة على النظر في استخدام TRUNCATE بدلا من DELETE.

نصائح أخرى

حذف دون أين (على الأرجح) مسح كامل من الجدول.وهذا يعني أنه يقرأ كل كتلة في إطار 'العلامة' - هذا هو كل كتلة التي سبق استخدامها من قبل الجدول.حتى إذا كان الجدول, في وقت واحد, كبيرة جدا, ثم أنه يمكن أن يستغرق وقتا طويلا جدا إلى حذف عدد قليل من السجلات.[لأنه لا أعرف ' هناك أربعة فقط السجلات حتى يقرأ كل هذه المساحة.]

وهو اقتطاع لا يفعل هذا.ببساطة يتحرك العلامة الجدول بحيث أن أي كتل في استخدام سرعان ما تصبح غير مستخدمة.

من غير المحتمل جدا أنه معلق منذ PDO يبدو أن في استخدام قليلا جدا ، على الرغم من كم مع أوراكل ، لا أعلم.

A delete from my_table قد يستغرق بعض الوقت اعتمادا على كيفية العديد من السجلات هناك.إلى متى الانتظار قبل اتخاذ قرار كانت معلقة و كم عدد السجلات في الجدول ؟

إذا كان هناك عملية قيد التشغيل على نفس الطاولة ، فإنه قد منع حذف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top