با درود به همه
ما یه وب سایت داریم که خیلی کنده و سرعت واکشی اطلاعات برای صفحه اصلی به 20 ثانیه هم میرسه این وب سایت داره از یک سرور فیزیکی اختصاصی استفاده میکنه که توان بالایی داره طوری که در بدترین شرایط 50 در از رم سرور در حال استفاده است حال با بررسی های انجام شده من موارد زیر رو تو برنامه پیدا کردم که احساس میکنم باعث کندی سیستم میشه
1-همه کنترل های استفاده شده از نوع دات نتی بوده و در بهترین شرایط فقط از script mangerاونهم فقط برای نمایش پروگرس بار استفاده شده یعنی میزان رفرش صفحه زیاده و اجکس تقریبا تعطیله
2-در هنگام واکشی رکورد ها از پایگاه داده اونها رو داخل سشن میریزه به عنوان دیتا تیبل و از سشن ها به عنوان متغیر های سراسری مکرر استفاده شده نه اینکه مثلا فقط برای کد شناسایی کاربر و اون چیزی که واقعا از سشن انتظار داریم
3-query های مورد استفاده در sqlserverبه میزان زیادی وابسته به viewها هستند وفیلتر ها بعد از اجرای view اعمال میشوند که میتونیم این query ها رو با دستورات مقرون به صرفه تر جایگزین کنیم
4- نکته دیگه اینکه تعداد hidden fieldها خیلی زیاد هست و صفحه اصلی 2500خط کد Aspxداره,5000خط کد csداره یعنی میشه این صفحه رو شکست به چند تا صفحه کوچکتر
حال سوال اینجاست با توجه به اینکه قطعا موارد بالا باید اصلاح بشه اولویت در اصلاحات با کدوم یک از گزینه های بالا باشه
موردی که گفتید رم سرور بیش از حد داره ازش کار کشیده میشه , جوابشو هم خودتون دادید. برای اینکه کمتر از منابع سرور استفاده بشه از سیشن برای نگهداری لیست ها استفاده نکنید. چون روی رم سرور فضا اشغال میکنند. میتونید از کلاس ها و فیبلدهای استاتیک استفاده کنید.
و اما کوئری ها رو بررسی کنید. ایندکس جداول , وابستگی ها و نرمال سازی جداول , همه در سرعت واکشی نقش مهمی دارند.
حتما دقت کنید در کوئری ها و sp ها و .. هرگز از ستاره (*) استفاده نکنید.
منظورم اینه
select * from tblName
نزنید. حتی اگر یک فیلد هم داشتید نام فیلد را بجای ستاره بنویسید.
select fName from tblName
و مورد بعدی اینکه ایجکس خود asp چندان کارایی نداره(از نظر بنده) - میتونید از jquery ajax استفاده کنید.
ممنون از پاسخ شما فقط الان اول کدوم رو اصلاح کنم کویری ها یا سشن ها؟
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)