افزایش سرعت برنامه های WPF سی شارپ در کار با Database
سلام من یک پروژه ثبت اطلاعات مشتریان رو دارم با سی شارپ WPF و Entity Framework و دیتابیس SQL Server
توی اون اطلاعات مشتریان و مشخصاتشون رو درج میکنم
یک مسیله ای که دارم اینه که چطور میتونم سرعت برنامه های WPF و سرعت DataEntry رو افزایش بدم اینو میدونم(اگر اشتباه نکنم) که WPF مستقیما از DirectX استفاده میکنه بنا براین سرعتش بالاتر از برنامه های Windowsform هست ,
توی اینترنت سرچ های زیادی انجام دادم
چیز هایی که دیدم مثل این که :
1- کد های بهینه و استاندارد
2-ایندکس گذاری
3-استفاده از Stroe Procedure
4-عدم استفاده از دستوراتی که باعث گرفتن مقدار زیادی حافظه میشود
...
لطفا راهنمایی بفرمایید چه راه هایی وجود دارد که هم سرعت برنامه های WPF و هم سرعت درج و بروز رسانی اطلاعات دیتابیس
باتشکر
افزایش سرعت دیتابیس در Sql Server
ببینید شما برای افزایش سرعت عملیات مربوط به دیتابیس بیشتر کاری که باید انجام بدید این هست که دیتابیس خودتون رو Tuning کنید. چون در سمت اپلیکیشن کار زیادی نیست برای انجام. (البته به شرطی که کدهای مخرب ننوشته باشید)
کارهایی که برای افزایش سرعت دیتابیس باید انجام داد
در مبحث دیتابیس موضوعی به نام Database Tuning وجود دارد. در این مبحث عواملی که باعث افزایش سرعت و کارایی دیتابیس می باشد مطرح می شود. برخی از مهمترین موضوعاتی که باعث افزایش سرعت دیتابیس می شود به شرح زیر می باشد.
- ایندکس گذاری به صورت اصولی روی فیلدها. دقت کنید که اگر ایندگس گذاری به صورت صحیح انجام نشود خود این موضوع باعث کندی دیتابیس می شود. معمولا بر روی فیلدهایی که احتمال سرچ بیشتری در آنها می باشد ایندکس گذاری می شود.
- Rebuild یا ReOrgnize کردن ایندکس ها به صورت منظم و دوره ای. ایندکس ها در واقع صفحاتی هستند که برای دسته بندی و نظم دادن به ردیف های دیتابیس مورد استفاده قرار می گیرد. اما بعد از مدتی خود این صفحات دچار بهم ریختگی و نامنظمی می شود. (Fragment) بنابراین باید با تعریف Job هایی ایندکس ها را Rebuild یا Reorgnize کرد. اگر درصد بهم ریختگی یا Fragment کمتر از 40 درصد باشد Reorgnize و اگر بالای 40 درصد بود باید ایندکس ReBuild شود.
- نرمال سازی دیتابیس تا سطح 4nf. داشتن یک دیتابیس Normal به افزایش سرعت کمک چشمگیری می کند. تعریف کلید های خارجی و اصلی، عدم وجود اطلاعات تکراری، جلوگیری از آنومالی و ... از قواعد پایه ای دیتابیس نرمال می باشد.
- فشرده سازی اطلاعات. یکی از موضوعاتی که بعد از مدتی شما را دچار مشکل می کند حجم بالای اطلاعات می باشد. اگر شما دارای یک دیتابیس با حجم بسیار زیادی از اطلاعات هستید علاوه بر اینکه حجم دیتابیس شما بسیار بالا می رود سرعت کوئری های شما هم خیلی افت پیدا می کند. بنابراین باید توسط روشهایی اطلاعات را فشرده کنید. یکی از دستوراتی که به فشرده سازی اطلاعات کمک می کند عملیات Shrink می باشد.
- استفاده از FTS. گاهی اوقات حجم داده های شما بسیار بالا می رود. به عنوان مثال ممکن است جداول شما چند میلیون رکورد داشته باشند. در این مواقع اجرای یک کوئری بسیار ساده هم میتواند بسیار زمانبر باشد. بنابراین در این موارد می توانید از روش Full Text Search استفاده کنید. در این روش سرعت کار با دیتابیس بسیار بالاتر می باشد.
- پارتیشن بندی جداول. اگر حجم داده ها و جداول شما بسیار بالاست یکی دیگر از روشهایی که میتوانید از آن برای نگهداری جداول استفاده کنید پارتیشن بندی جدول می باشد. در این روش جدول با حجم بسیار بالا به چندین فایل کوچکتر شکسته می شود و به همین خاطر سرعت اجرا کوئری ها افزایش می یابد.
Start and Use the Database Engine Tuning Advisor
ببینید مواردی که در بالا گفته شد همه با هم استفاده نمی شود. مثلا ممکنه شما بعد از مدتی نیاز به فشرده سازی اطلاعات پیدا کنید اما دلیلی نیست که جداولتون رو پارتیشن بندی کنید یا اینکه از FTS استفاده کنید. ضمنا موارد بالا همگی در سمت Sql Server می باشد.
اما در سمت C# چون از انتیتی فریم ورک استفاده میشه خیلی از کارها پشت صحنه انجام میشه. اما مواردی که میشه برای سرعت بیشتر اشاره کرد.
- استفاده کمتر از دستور SaveChange
- استفاده کمتر از کتابخانه mapper
- استفاده کمتر از متغیرهای String و کار کردن با StringBuilder ها
- استفاده از DataReader به جای DataSet وقتی فقط نیاز به خواندن اطلاعات دارید نه ویرایش یا ثبت
- نوشتن دستورات به صورت async یا ناهمزمان
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- حذف کامل یک رکورد در جدول ریلیشن شده
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf