PDA

View Full Version : راهنمایی در رابطه با session



kamrannazari
جمعه 06 فروردین 1389, 02:53 صبح
سلام
من برای انجام موردی مجبور به ذخیره اطلاعاتی حدودا 5 کیلو بایت در session شده ام
ولی دقیقا نمی دونم من محدودیتی در مورد resource سرور نمی دانم که آیا کم خواهد آمد یا خیر
آیا اگر من در دیتا بیس ذخیره کنم بهتر نیست؟
به نظر شما سرعت session بیشتره یا دیتابیس(sql server)

لطفا راهنمایی کنید

mehdi.mousavi
جمعه 06 فروردین 1389, 03:01 صبح
سلام من برای انجام موردی مجبور به ذخیره اطلاعاتی حدودا 5 کیلو بایت در session شده ام ولی دقیقا نمی دونم من محدودیتی در مورد resource سرور نمی دانم که آیا کم خواهد آمد یا خیر آیا اگر من در دیتا بیس ذخیره کنم بهتر نیست؟ به نظر شما سرعت session بیشتره یا دیتابیس(sql server) لطفا راهنمایی کنید

سلام.
ذخیره اطلاعات Session در SQL Server، حدودا 25% کندتر از حالتی هستش که اطلاعات مزبور بصورت InProc ذخیره میشن... نگهداری همین اطلاعات در StateServer (در واقع Out of Process) نیز حدودا 15% کندتر از حالتی هستش که اطلاعات بصورت InProc نگهداری میشن. شما انتخابهای دیگه ای هم دارید، اگر نگران Resource های سرور هستید. میتونید از Cache استفاده کنید، تا در صورت نیاز، خودش بطور خودکار Purge بشه... البته همه اینها بستگی به کاری که میخواهید انجام بدید داره و نمیشه یه نسخه عمومی برای همشون پیچید.

موفق باشید.

Mostafa_Dindar
جمعه 06 فروردین 1389, 03:27 صبح
سلام.
نگهداری همین اطلاعات در StateServer (در واقع Out of Process) نیز حدودا 15% کندتر از حالتی هستش که اطلاعات بصورت InProc نگهداری میشن.

سلام ،

در مورد علتش هم ميگين ؟ نگهداري اطلاعات در StateServer چه پروسه اي داره كه باعث كندي ميشه ؟

مرسي .

mehdi.mousavi
جمعه 06 فروردین 1389, 13:14 عصر
سلام ، در مورد علتش هم ميگين ؟ نگهداري اطلاعات در StateServer چه پروسه اي داره كه باعث كندي ميشه ؟ مرسي .

StateServer چیه؟ در واقع همون Out of Process هستش. اینجا Process داره به چی اشاره میکنه؟ به aspnet_wp.exe. بعبارت دیگه چون اطلاعات Session باید خارج از aspnet_wp.exe نگهداری بشه، یه Context Switching بین دو Process وجود داره که سرعت رو کندتر میکنه. اما از اونجاییکه StateServer اطلاعات رو میتونه توی یک پروسه دیگه، روی یک ماشین دیگه نگهداری کنه، علاوه بر Context Switching چون باید از Machine Boundary هم اطلاعات عبور کنه، اونوقت سرعت بطور چشمگیری کاهش پیدا میکنه. توضیح اینکه StateServer اطلاعات Session رو در aspnet_state.exe مدیریت و نگهداری میکنه (و البته میشه یک Custom Process برای اینکار هم ایجاد کرد).

موفق باشید.