Linq vs Stored Procedure

98

Програмування Asp.net
Попередній

Наступний

На даний момент я активно використовую LinqToSQL як основну свою ORM. Але в одному з проектів довелося працювати з дуже великою кількістю даних. 12 таблиць по 10 000 записів, які пов’язані між собою і зв’язок ця не проста.

Програма була написана і вибірки в ній були реалізовані на Linq запитах. При малій кількості даних все працювало нормально, але коли їх кількість зросла за 40 000, програма падала.

І тоді і прийшла ідея оптимізації, а саме перевести великі запити (де купа join) на збережені процедури(Stored Procedure). Але перед цим був проведений тест. Було створено два однакових запиту на Stored Procedure і Linq, запити повертали по 50 000 записів. Так ось Linq його робив 00:00:05.638 сек, а Stored Procedure за 00:00:01.672 с, що набагато швидше.

Прошу зауважити, що це тільки для великих запитів, у решті випадків краще використовувати Linq.