DotNet | دات نت
1.2K subscribers
671 photos
231 videos
486 files
730 links
تو این روزا بهتره که همیشه علم خودمون رو بالا ببریم و بتونیم با سریع ترین راه ممکن خودمونو بروز نگه داریم.
- سعی کنیم از کمترین امکانات بیشترین بهره رو ببریم
منتظرت هستیم😉
دنیا رو جای بهتری برای یادگیری کنیم 🌹
#course #book


🆔 @dotnetcode
Download Telegram
معرفی کتابخانه EFCore.BulkExtensions
در سری #معرفی_اکستنشن_های_کاربردی_EFCore
Entity Framework Core Bulk Batch Extensions for Insert Update Delete and Read (CRUD) operations on SQL Server

خیلی وقتا نیاز میشه یک مرتبه حجم زیادی از رکورد ها رو توسط EFCore ذخیره کنین (مثلا import کردن از یه فایل excel)
در حالت عادی (متد Add و یا AddRange)، رکورد های شما به صورت تکی Insert میشه و سرعت بالایی نداره، بر خلافش اما، در روش Bulk Insert، همه رکورد ها به صورت یکجا Insert میشن و سرعت بسیار بسیار بالایی داره این روش (حتی تا 20 برابر سریع تر!)

این کتابخونه بی نظیر، قابلیت انجام عملیات Bulk و Batch رو در EF Core فراهم میکنه و از async هم پیشتیبانی میکنه :
- Bulk operations (Insert, Update, Delete, Read, Upsert, Sync)
- Batch operations (Delete, Update)

* برای مقایسه پرفرمنس و تفاوت سرعت بین روش عادی و Bulk هم تصویر پست گویای همه چی هست

لینک ریپازیتوری + مثال و توضیحات :
https://github.com/borisdj/EFCore.BulkExtensions

#Bulk #EFCore #Performance
آخرت سرعت در عملیات Linq با کتابخانه LinqFaster !

این کتابخانه با استفاده از تکنولوژی SIMD (ساده بگم : پردازش برداری موازی و فوق سریع) و پردازش موازی با Multi-Threading اومده و متد های کمکی مشابه ایی نوشته که عملیات Linq رو با سرعت بالا و مصرف حافظه کمتر انجام میده.
فقط کافیه بنچمارک رو توی تصویر ببینین :)

LinqFaster
متد‌های کمکی Linq با پرفرمنس بالا
https://www.nuget.org/packages/LinqFaster/

LinqFaster.SIMD
متد‌های کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD
https://www.nuget.org/packages/LinqFaster.SIMD/

LinqFaster.Parallel
متد‌های کمکی Linq با پرفرمنس بالا با استفاده از پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.Parallel/

LinqFaster.SIMD.Parallel
متد‌های کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD و پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.SIMD.Parallel/

لینک ریپازیتوری :
https://github.com/jackmott/LinqFaster

#Linq #Performance
__________________
👩‍💻 هنوز داری با کوئری‌های سنگین دیتابیس رو زیر بار میبری؟

وقتی صحبت از پرفورمنس در PostgreSQL میشه، خیلی‌ها سریع میرن سراغ ایندکس‌گذاری. اما گاهی مشکل ایندکس نیست؛ مشکل اینه که داری یه محاسبات سنگین رو بارها و بارها تکرار می‌کنی!

اینجاست که Materialized View (MatView) وارد بازی میشه. برخلاف View معمولی که فقط یه "پنجره" به دیتاست، MatView نتیجه رو واقعاً روی دیسک ذخیره (Cache) می‌کنه.
اما سوال اصلی اینه: کی باید ازش استفاده کنیم و کی فرار کنیم؟ 🤔

کجا معجزه می‌کنه؟ (Use Cases)
* داشبورد‌های مدیریتی: مدیرها معمولاً آمار لحظه‌ای نمی‌خوان؛ آمار ۵ دقیقه پیش هم راضی‌شون می‌کنه.

* کوئری‌های تحلیلی سنگین: وقتی چند تا Join و Aggregation وحشتناک داری که هر بار اجراش چند ثانیه طول میکشه.

* آرشیو دیتا: وقتی دیتای قدیمی تغییر نمی‌کنه و فقط برای گزارش‌گیری لازمش داری.

کجا نباید سمتش بری؟ (Red Flags)
* دیتای ۱۰۰٪ ریل‌تایم: اگه کاربر باید تغییر رو در میلی‌ثانیه ببینه، MatView گزینه غلطیه (چون تا Refresh نشه، دیتا قدیمیه).

* نرخ تغییرات بالا: اگه دیتای اصلی مدام در حال آپدیته، هزینه Refresh کردن MatView ممکنه بیشتر از سودش بشه.

💡 نکته حرفه‌ای (Pro Tip):

موقع آپدیت کردن ویو، دیتابیس ممکنه قفل بشه! برای اینکه سرویس نخوابه، حتماً از دستور زیر استفاده کن تا همزمان با خوندن، بتونی آپدیتش کنی:
REFRESH MATERIALIZED VIEW CONCURRENTLY

👇 همین الان چک کن:

یه نگاه به لیست Slow Queryهای پروژه‌ت بنداز. اگه کوئری تکراری و سنگین داری، شاید وقتشه "متریالایزش" کنی!

🔗 https://stormatics.tech/blogs/postgresql-materialized-views-when-caching-your-query-results-makes-sense

#PostgreSQL #Database #Performance #Backend #SQL

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1🔥1👏1