Lock ها در SQL Server مکانیزمی هستند که از تداخل دسترسی به منابع دادهای مانند ردیفها، صفحات، جداول و پایگاههای داده جلوگیری میکنند. برای مثال، اگر یک Lock انحصاری (X) روی یک ردیف در یک جدول توسط یک تراکنش نگه داشته شود، هیچ تراکنش دیگری نمیتواند آن ردیف را تغییر دهد تا Lock آزاد شود.انواع Lock در SQL
Lock ها در SQL Server به چندین نوع تقسیم میشوند که عبارتند از:
- Lock های اشتراکی (S): برای عملیات select استفاده میشوند و به چندین تراکنش اجازه میدهند که به یک منبع دادهای خوانش فقط دسترسی داشته باشند.
- Lock های انحصاری (X): برای عملیات DML استفاده میشوند و به یک تراکنش اجازه میدهند که یک منبع دادهای را تغییر دهد و سایر تراکنشها را از آن منع میکنند.
- Lock های بروزرسانی (U): مرحله اولیه برای Lock انحصاری است. برای جلوگیری از Deadlock های Update استفاده میشود.
- Lock های قصد (Intent): برای برقراری سلسله مراتب Lock استفاده میشوند. به SQL Server نشان میدهند که تراکنش قصد دارد برخی از منابع سطح پایینتر را با Lock های خاص قفل کند.
- Lock های Schema: زمانی استفاده میشوند که عملیات وابسته به Schema یک جدول در حال اجرا است. دو نوع Schema modification lock (Sch-M) و Schema stability lock (Sch-S) وجود دارد.
- Lock های Bulk Update (BU): زمانی استفاده میشوند که دادههای Bulk به یک جدول کپی شده و Hint TABLOCK مشخص شده است.بیشتربدانید
- ۰۲/۰۳/۲۱