بن بست زمانی رخ می دهد که فرآیندهای 2 برای دسترسی انحصاری به یک منبع رقابت می کنند، اما قادر به دسترسی انحصاری به آن نیستند، زیرا فرآیند دیگر مانع از آن می شود. … SQL Server به طور خودکار تشخیص می دهد که بن بست ها رخ داده اند و با کشتن یکی از فرآیندهای معروف به قربانی اقدام می کند.
چرا بن بست اتفاق می افتد؟
دو فرآیند برای دو منبع به ترتیب مخالف رقابت می کنند. … فرآیند بعدی باید منتظر بماند. بن بست زمانی رخ می دهد وقتی اولین فرآیند منبع اول را قفل می کند همزمان با فرآیند دوم منبع دوم را قفل می کند بن بست را می توان با لغو و راه اندازی مجدد فرآیند اول حل کرد.
چگونه می توانیم از بن بست در SQL Server جلوگیری کنیم؟
راههای مفید برای جلوگیری و به حداقل رساندن بن بست سرور SQL
- سعی کنید تراکنش ها را کوتاه نگه دارید. این از نگه داشتن قفل در یک تراکنش برای مدت طولانی جلوگیری می کند.
- دسترسی به اشیا به روش منطقی مشابه در چندین تراکنش.
- برای کاهش احتمال بن بست، یک شاخص پوششی ایجاد کنید.
بن بست در SQL Server چیست؟
بن بست
SQL Server اساساً بن بست بین دو فرآیندی است که برای دسترسی انحصاری به یک منبع با هم رقابت می کنند . از آنجایی که تنها یک فرآیند میتواند از یک منبع در یک زمان استفاده کند، عملکرد تا زمانی که بنبست برطرف شود کند میشود.
چگونه یک بن بست را رفع می کنید؟
فرکانس بنبست گاهی اوقات میتواند با اطمینان از اینکه همه برنامهها بهبه دادههای مشترک خود به یک ترتیب دسترسی دارند کاهش مییابد - به این معنی که برای مثال به ردیفها دسترسی دارند (و در نتیجه قفل میشوند). جدول A، به دنبال آن جدول B، به دنبال آن جدول C، و غیره.