WHERE IN را در SQL نادیده نگیرید(مشکلات NET. :بخش بیست و سوم)

WHERE IN را در SQL نادیده نگیرید(مشکلات NET. :بخش بیست و سوم)

با استفاده از WHERE IN در دات نت و در sql داده ها را به صورت دسته ای ارسال کنید.

sql vs dot net

 

Entity Framework به اندازه کافی هوشمند است تا با استفاده از  Contains()بتواند کوئری های LINQ را به WHERE IN در  SQL تبدیل کند. اما یک مشکل پنهان وجود دارد: دادن یک مجموعه داده ای به طول بیش از 10،000 رکورد در WHERE IN به طور قابل توجهی عملکرد تولید پرس و جو و اجرای پرس و جو را کاهش می دهد.



    var ids = new int[]{0,1, 2,3,4,5,6,7,8,9,10........99995, 99996,99997,99998,99999}; var matches = (from person in people          where ids.Contains(person.Id)         select person).ToArray();

کد بالا یک کوئری SQL را نشان می دهد.



SELECT * FROM PERSON WHERE ID IN (0,1,2,3,4,5,6,7,8,9,10.....,99995,99996,99997,99998,999 99

بنابراین توصیه می شود که داده ها را به صورت دسته ای ارسال کنید. برای مثال، 500 رکورد در هر دسته، عملکرد قابل توجهی را در بهبود عملکرد نشان می دهد، اما شما باید معیار سنجش را انجام دهید تا ببینید چه چیزی برای شما کار می کند.

52 مشکل رایج در NET.

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس