PDA

View Full Version : چگونگی اجرای همزمان یک Query



probit
دوشنبه 30 مهر 1386, 14:28 عصر
سلام
یک سوال برای من پیش آمده:
وقتی یک Query همزمان دو یا چند بار اجرا شود، Sql Server چه عملی انجام میدهد؟
آیا از صف بندی استفاده می کند ؟ یا اینکه همه را همزمان اجرا می کند؟
من یک برنامه می نویسم که اگر یک رکورد تکراری نبود آنرا Insert میکند. حالا اگه همزمان دو نفر این کوری را اجرا کنند، این رکورد وجود ندارد و فقط برای یکی از این دو نفر باید Insert را اجرا کنه و برای بعدی این کار را نکنه. در صورتی این درست است که از صف بندی استفاده کنه.

AminSobati
دوشنبه 30 مهر 1386, 20:11 عصر
دوست عزیزم،
Queryها همزمان اجرا میشن مگر اینکه از Hintهای بخصوصی برای Lock کردن استفاده بشه. اما توصیه نمیکنم، چون قابلیت همزمانی در نرم افزار شما کاهش پیدا میکنه و حتی Selectهایی که قرار نیست بعدشون Insert انجام بشه هم Block میشن.
راه اصولی اینه که Unique Index یا Unique Constraint بسازین. در این حالت خود SQL Server تکراری بودن رو کنترل میکنه و جلوی ورودش رو میگیره