state يكی از بزرگترين محدوديت های تاثير گذار در  خصوص كارآئی  برنامه های نوشته شده با استفاده از ASP كلاسيك است . با اين كه در ASP.NET ويژگی های جديدی به منظور بهبود كاركرد session state ارائه شده است  ولی همچنان لازم است كه از آن با دقت استفاده گردد .
اگر صرفا” ID يك خريدار كالا را در session state ذخيره كرده باشيم، درگير مسائلی خاص نخواهيم شد . در چنين مواردی می توان يك سبد خريد كالای الكترونيكی را با ذخيره ليستی از محصولات انتخابی توسط خريدار ايجاد نمود . در صورتی كه قصد ذخيره حجم بالائی از اطلاعات نظير يك Dataset  را داشته باشيم ، می بايست در اين رابطه دقت و تاثير آن را بر روی موفقيت برنامه بررسی كرد . به عنوان نمونه ، در صورتی كه هر  session فضائی به ميزان يك مگابايت را استفاده نمايد ، يكصد session همزمان باعث استفاده 100 مگابايت از حافظه خواهد شد .
برای حل اين نوع از مشكلات ، در زمان طراحی می توان بر اساس يكی از دو گزينه های زير تصميم گيری نمود :

  • ذخيره تمامی اطلاعات مورد نياز در يك ركورد بانك اطلاعاتی و ذخيره ID  ركورد مورد نظر در يك session .  روش فوق باعث صرفه جوئی در مصرف حافظه می گردد ولی سرعت برنامه را كاهش خواهد داد ( با توجه به فرآيند دستيابی به بانك اطلاعاتی كه يكی از عناصر مهم و تاثيرگذار در خصوص كارآئی برنامه های وب است ) .
  • به عنوان يك راه حل بهتر می توان اطلاعات مورد نظر را در يك ركورد بانك اطلاعاتی ذخيره و در ادامه برخی از اطلاعات را در حافظه cache نمود . بدين ترتيب ، امكان بازيابی اطلاعات با سرعت بيشتری فراهم می گردد . در بخش های بعدی با data caching بيشتر آشنا خواهيم شد .

بهترين روش و يا گزينه برای ذخيره session ، استفاده از روش  in-process است كه به صورت پيش فرض در نظر گرفته می شود . برای ذخيره session می توان از روش های ديگری نظير يك بانك اطلاعاتی SQL نيز استفاده نمود . استفاده از روش فوق پردازش های بيشتری را به سيستم تحميل و صرفا”  در مواردی كه وب سايت مورد نظر در يك web farm به همراه چندين سرويس دهنده هاست شده باشد ، توصيه می گردد .

دسته بندی : افزایش درآمد سایت