عنوان:

‫DbContext Pooling چیست؟


نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۱/۲۴ ۱۲:۵۵
آدرس: www.dntips.ir
Pooling DbContext با استفاده‌ی مجدد از نمونه‌های DbContext، به‌جای ایجاد نمونه‌های جدید برای هر درخواست، عملکرد برنامه‌های EF Core را به طور چشمگیری بهبود می‌بخشد. این امر باعث کاهش مصرف منابع و افزایش سرعت پردازش می‌شود.

Pooling DbContext چیست؟
  • یک استخر از اشیاء DbContext از پیش پیکربندی شده، نگهداری می‌شود.
  • درخواست‌های ورودی یک DbContext را از استخر، بازیابی می‌کنند، از آن استفاده می‌کنند و آن را برمی‌گردانند.
  • این امر از سربار ایجاد و حذف مداوم اشیاء DbContext جلوگیری می‌کند.

نحوه عملکرد آن (مقایسه عملکرد):
  • بدون Pooling: تعداد زیادی ایجاد و تخریب DbContext؛ برای مثال: 64637 زمینه (Context) ایجاد شده، با 6395 درخواست در ثانیه.
  • با Pooling: از نمونه‌های DbContext مجدداً استفاده می‌شود؛ برای مثال: 32 زمینه ایجاد شده با 15714 درخواست در ثانیه (بیش از دو برابر توان عملیاتی).

پیاده سازی:
  • services.AddDbContextPool<YourDbContext>(options => options.UseSqlServer("YourConnectionString")); را به متد ConfigureServices اضافه کنید.



مشاهده مطلب اصلی