PDA

View Full Version : کند شدن شدید Sql Server بعد از چند ساعت کار



idic1
دوشنبه 18 شهریور 1387, 13:28 عصر
با سلام خدمت دوستان
برنامه ای نوشته ام Grid Base که بانک آن Sql Server است ، حدود 50 کاربر همزمان دارد و تعداد رکوردهای جدول اصلی آن حدود یک و نیم میلیون رکورد است
مشکل اینجاست که بعد از حدود 5 ساعت که این 50 کاربر با برنامه کار کرده اند ، عملیات Select , Insert , UpDate به کندی انجام میشود (حدود 3 برابر زمان بیشتر نسبت به ساعت اولیه) و مجبور به Re Start کردن سرور هستیم

ضمن بررسی مشخص شد ، حدود 90 درصد فضای Ram سرور توسط SQL Server اشغال شده (در حالی که این رقم در ساعات اولیه بسیار ناچیز بوده است) و در هیچ صورت نیر این فضا آزاد نمیشود حتی زمانی که کاربری با برنامه کار نمیکند
بعید میدانم راه حل این مشکل در Application باشد

از دوستان مطلع تقاضای راهنمائی دارم

anubis_ir
دوشنبه 18 شهریور 1387, 15:06 عصر
جايي خوندم توصيه شده ميزان حافظه sql server رو به نصف حافظه سرور تنظيم كنيد (آقاي ثباتي بهتر مي‌تونند نظر بدهند).
دليل آن هم اين است كه sql server به صورت پيش فرض جهت مصرف كل رم تنظيم شده. روي سرور كليك راست كنيد، قسمت خواص و قسمت memory . حداكثر رو اينجا مي‌شود ست كرد.
حالا اگر روي سرور هم sql server داريد و هم iis ، ديگه رمي براي iis جهت سرويس دهي باقي نمي‌مونه.
ضمنا اگر سايت با دات نت است يك نكته رو هم فراموش نكنيد. اون هم بحث بستن كانكشن پس از استفاده است. در مورد using روي sqlconnection تحقيق كنيد. using اشياء اختصاص داده شده رو dispose‌ مي‌كنه حتي اگر يك خطا رخ بدهد. اين موردي است كه عموما برنامه نويس‌ها فراموش مي‌كنند. اگر كد شما خطا بدهد به بستن كانكشن نخواهد رسيد و همينجا است كه سرور كند مي‌شود. بنابراين استفاده از using را فراموش نكنيد.
اگر هم دات نت نيست قسمت try و finally‌ ار فراموش نكنيد. حتما آزاد سازي منابع را به قسمت finally منتقل كنيد تا هميشه اجرا بشود.

رضا عربلو
دوشنبه 18 شهریور 1387, 15:08 عصر
اشکا از اس کیو ال سرور نیست. از برنامه شما است. بایستی سعی کند از تکنیک های (نظیر paging و ..) استفاده کنید که تنها اطلاعاتی را که لازم دازید را دستکاری کند و سربار اضافی بر روی شبکه و اس کیو ال سرور نگذارد.

AminSobati
دوشنبه 18 شهریور 1387, 20:37 عصر
اشغال شدن همه حافظه سرور مشکل تلقی نمیشه. باید در درجه اول با Performance Monitor بررسی کرد تا متوجه منبع بروز اشکال شد. صرفا اینکه حافظه سرور پر شده دلیل کافی بر کمبود حافظه نیست، یک احتماله. دیدن لینکهای زیر هم ضرر نداره
http://www.barnamenevis.org/forum/showthread.php?t=85853
http://www.barnamenevis.org/forum/showthread.php?t=76370

idic1
سه شنبه 19 شهریور 1387, 11:00 صبح
ضمن تشکر از عنایت دوستان

توصیه آقای anubis_ir را اجرا کردم بدین ترتیب که از کل رم سرور که یک و نیم گیگ بود Sql Server را محدود به یک گیگ کردم و مشکل تا این ساعت دیده نشده