|
Programmer ASP.NET MVC C# |
Programming
|
||
Предыдущий | Следующий | |
Дома не было чем заняться и я захотел проверить скорость маппинга LINQ, а точнее скорость работы с данными. Не долго шаманя над компом была создана программа, которая считывает 5000 раз табличку с данными (в таблице данных было мало, около 6 записей, почему-то обломало заполнять больше), после этого считанные данные отправлялись на gridview. Итак, считываем данные и бросаем в грид, время выводим на экран. Мне в голову пришло только 5 способов считать данные: 1) Использует SqlDataReader код выглядит так: List<Employee> list = new List<Employee>(); Я использую хранимую процедуру. После получения данных в list он отправляется в грид 2) Следующий метод использует SqlDataAdapter и DataSet, вот код: using (SqlConnection con = new SqlConnection(ConnectionString)) 3) Для разнообразия я еще попробовал считать данные использую BLToolkit - это еще один прикол для маппинга (не рекомендую его использовать, слишком много кода нужно писать) 4) Заодно и вспомнил предшественника LINQ - это файл DataSet.xsd (в нем метод маппинга так же прост, просто перетягиваешь таблички с одного окна в другое :-) 5) Последним разуметься был LINQ Вот какие у меня получились результаты: Как видно Linq в скорости проигрывает. Но немного поразмыслив я понял. Во-первых было 5000 запросов меньше чем за минуту - это прям DOS-атака какая-то. Во-вторых я вспомнил сколько пришлось писать кода что бы реализовать более быстрые методы, не знаю стоит те силы выигранных миллисекунд на одном запросе. Я понимаю что не плохо было бы сравнить LINQ c такой штукой как nhibernate или Entity Framework, но пока я им не пользуюсь и изучать как-то нет желания и потребности |
В 10/16/2013 12:23:01 AM, Аноним
Тоже хотел самое сделать, а вы уже сделали. Спасибо.