آموزش برنامه نوسی

آموزش برنامه نویسی سی شارپ asp,net mvc asp.net core angular emberjs و ...

آموزش برنامه نویسی سی شارپ asp,net mvc asp.net core angular emberjs و ...

نمیدانم چه میخواهم بگویم


<a href="https://www.zangin.ir">بهترین نرم افزار اتوماسیون اداری</a>

مشکلات اساسی ef

سه شنبه, ۱۵ اسفند ۱۳۹۶، ۱۲:۲۴ ق.ظ


در برخی از پروژه هایی که برای دسترسی به پایگاه داده از Entity Framework استفاده می شود، دو مشکل اساسی بسیار دیده می شوند.

1. کانکشن هایی که توسط DbContext ساخته می شوند، توسط توسعه دهنده بسته نمی شوند و برای همیشه باز می مانند: هنگامی که Entity Framework یک کوئری را به سمت پایگاه داده ارسال می کند، در ابتدا یک کانکشن باز می کند و سپس داده ها را باز می گرداند. اما مسئولیت بستن این کانکشن (Dispose) با برنامه نویس می باشد. اما متاسفانه بسیار دیده می شود که این کانکشن ها هیچ گاه بسته نمی شوند و پایگاه داده به علت حجم بالای کانکشن های بازمانده و بلا استفاده بسیار کند شده و منابع بسیاری زیادی مصرف می کند.

2. در وب اپلیکشن ها باید از الگویی به نام One Context Per Request استفاده کنیم: یعنی به ازای هر درخواستی که از سمت کاربر می آید، تنها و تنها یک DbContext ساخته شده و Context مسئولیت فراهم سازی داده ها را از لایه ها و متد های مختلف فراهم کند. اما گاهی می بینیم که به ازای یک درخواست کاربر، در سمت سرور DbContext های زیادی ساخته می شود. در واقع به ازای هر دسترسی به پایگاه داده یک Context ساخته می شود. ایراد این امر آن است که هر Context یک کانکشن به سمت پایگاه داده می سازد. ساختن کانکشن ها هم امری زمان بر بوده و هم منابع بسیاری را مصرف می کند.

* وقتی موارد 1 و 2 هم زمان اتفاق می افتند => 😱


درباره مورد اول، Brent Ozar که از وب سایت های شاخص حوزه Sql Server می باشد، توضیحاتی داده است :
http://www.brentozar.com/archive/2015/07/database-connection-hazards-with-entity-framework/

برگرفته از کانال ایران دات نت 

موافقین ۰ مخالفین ۰ ۹۶/۱۲/۱۵
کدچی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی