محدودیت های مختلف در کانکشن sql server 2008 در C#‎

ساخت وبلاگ
سلام و عرض ادب
من یک برنامه نوشتم که توش از sql server 2008 برای مدیریت اطلاعاتم استفاده میکنم.

یک نرم افزار هست که هزاران thread رو اجرا میکنه و داخل ترد ها روی رکورد های sql ویرایش یا اینسرت و یا ... انجام میشه.

من وقتی برای هر کویری یک کانکشن باز میکنم و بعد از اتمام کارش کانکشن رو میبندم خطای تعداد کانکشن ها که از سمت پولینگ هست میاد و عملا تعداد کانکشن ها رو کم میاره

اومدم کل برنامه رو با یک کانکشن وصل کردم به صورت عمومی. بعد تو رشته اتصال اینم اضافه کردم برای ارسال همزمان کویری ها به سرور :

Data Source = localhost;database=TaskQueue;Persist Security Info=True;integrated security=SSPI; MultipleActiveResultSets=true;Connection Timeout=0

تو این حالت مشکلی پیش نمیاد تا زمانی که حدود 15 هزار ترد در حال اجرا هستند و بعد از رسیدن به یک تعداد حدودی 10 هزار ترد برنامه گیر میکنه.
خطا میده که

Timeout expired. 
The timeout period elapsed prior to completion of the operation or the server is not responding.

اومدم برای حل این مشکل هم برای هر کامند تایم اوت رو غیر فعال کردم به این شکل :
command.CommandTimeout = 0;

الان وقتی یکم برنامه اجرا شد و تعداد ریکویست های sql زیاد شد کل برنامه دیگه گیر میکنه و هیچ query رو به sql server نمیفرسته

حتی وقتی sql server studio managment رو باز میکنم و از داخل اون یک query مینویسم گیر میکنه و یک count ساده که مینویسم حدودا یکو نیم ساعت و یا بیشتر طول میکشه جواب بده بهم.

ممنون میشم راهنمایی کنید برای حل این مشکل

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 188 تاريخ : چهارشنبه 23 فروردين 1396 ساعت: 23:25