Table of Contents
قفل های داده های SQL زمانی اتفاق می افتد که دو یا چند تراکنش منتظر یکدیگر برای انتشار منابع هستند و باعث ایجاد یک مانع می شوند تا درک کنند که چگونه قفل های مرده اتفاق می افتد و تکنیک های پیشگیری برای حفظ عملکرد پایگاه داده و قابلیت اطمینان ضروری است.
قفل های مرده چیست؟
یک بن بست زمانی اتفاق می افتد که معاملات منابع را نگه می دارند و منتظر دیگران هستند و چرخه ای ایجاد می کنند که مانع از ادامه هر یک از آنها می شود.این وضعیت می تواند منجر به کاهش سیستم یا شکست شود اگر به درستی مدیریت نشود.
علل رایج Deadlocks
- معاملات قفل کردن منابع در سفارشات مختلف
- معاملات طولانی مدت
- سطح بالای Concurrency
- در فهرست بندی های ناکافی
تکنیک های جلوگیری از Deadlocks
پیاده سازی استراتژی های خاص می تواند احتمال قفل شدن را کاهش دهد، این شامل نظم قفل سازی ثابت، نگه داشتن معاملات کوتاه و استفاده از سطوح انزوای مناسب است.
دستور دائمی Locking
اطمینان حاصل کنید که تمام معاملات قفل ها را به همان ترتیب برای جلوگیری از وابستگی های چرخه ای به دست می آورند.
معاملات کوتاه را نگه دارید
به حداقل رساندن مدت معاملات برای کاهش احتمال محتوای منابع.
استفاده از Appropriate Isolation Levels
تنظیم سطح انزوا برای تعادل هم ارزی و سازگاری، مانند استفاده از خواندن متعهد به جای سریال قابل توجه در زمان مناسب.
مطالعات موردی
چندین سازمان موفق به اجرای تکنیک های پیشگیری از قفل مرده شده اند، به عنوان مثال، یک شرکت خرده فروشی سفارش بهینه سازی شده و قفل های مرده را تا 30 درصد کاهش داده و ثبات سیستم را در ساعات اوج بهبود می بخشد.