PDA

View Full Version : فرق Isolation Level ها با Table_Hint ها



odiseh
شنبه 31 شهریور 1386, 13:36 عصر
سلام
کسی فرق بین Isolation Level ها مثل Serializable ، با Table_Hint ها مثل Nolock رو می دونه؟

من بطور کلی می خوام بدونم کی از اولی باید استفاده کرد و کی از دومی؟
در ضمن پشت صحنه چه اتفاقی می افته؟


ممنون

AminSobati
شنبه 31 شهریور 1386, 14:44 عصر
دوست عزیزم،
در حقیقت همه اونها یک هدف رو تامین میکنند. وقتی Isolation Level رو SET میکنین، تاثیرش در تمام عملیات شما در اون Connection وجود داره. حالا زمانی که فرضا دارین از READ COMMITTED استفاده میکنین، اگر لازم شد یه Query رو به طور استثنا در Isolation Level دیگه ای اجرا کنین، میتونین براش Hint بکار ببرین.

odiseh
یک شنبه 01 مهر 1386, 09:05 صبح
ضمن تشکر چیزی که من از گفته شما دریافت کردم اینه که به دلیل محدودیتی که به هنگام استفاده در Isolation Level ها در طول بکارگیری یک connection وجود داره (منظورم اینه که همه Query ها اون Isolation Level رو بکار می برن) حالا اگه بخوهیم که از شر اون Option خلاص بشیم با Hint تنظیمات رو بهم میریزیم.

اگر لازم شد یه Query رو به طور استثنا در Isolation Level دیگه ای اجرا کنین، میتونین براش Hint بکار ببرین.
اما مگه Hint ها معادل Isolation Level ها هستن و کار اونا رو انجام می دن؟

AminSobati
یک شنبه 01 مهر 1386, 12:56 عصر
همونطور که عرض کردم هم Hintها و هم Isolation Levelها برای یک هدف، یعنی مدیریت همزمانیه کاربرها استفاده میشن. ولی Hintها بعضا کنترل دقیق تری روی جداول میتونن اعمال کنن. مثلا tablock میتونه حتی با select کردن یک رکورد هم کل جدول رو lock کنه ولی در Isolation Levelها چنین قائده ای نداریم