Re[90]: Тормознутость и кривость linq
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 01.05.16 08:36
Оценка: +1
Здравствуйте, alex_public, Вы писали:

N>>Сразу дисклеймер: нет, я не поддерживаю позицию alex_public, что это всё лучше делать так вручную — хотя бы потому, что я банально ленив (той ленью, которая достоинство программиста), и в первую очередь побежал бы за готовым средством. Но и рассказ про 1024 варианта, мягко говоря, неадекватен.

_>Никто про "всё лучше делать вручную" не говорил. Речь шла про конкретный пример из данной статьи http://blog.gandjustas.ru/2014/09/23/asp.net-linq-ef-sql-server-performance/, про который я высказал оценку, что он бредовый, т.к. сравнивает исключительно хранимку vs linq.

Тогда ты очень плохо держишь исходную тему в процессе обсуждения. Потому что уже после 2-3 последующих сообщений этот исходный пример ушёл куда-то погулять, а вы радостно переключились на сложности формирования SQL.

Пример как раз достаточно разумный, если исходить из практики. Хранимка тут как раз малосущественна, такой же запрос с case внутри (неважно, явном или нет) можно было послать и напрямую с клиента (да, я видел такое в реальности). Различие именно в том, чьи затраты меньше — локального генератора (linq2db или аналога) или сервера (сможет ли сервер, например, сразу сэкономить на входе на ветке, которая при компиляции SQL запроса для него константа false).

Но дальше вы тут же растеклись на что-то совсем странное. Ты вот утверждаешь, что там внутри сплошная рефлексия, а коллеги — что там expression trees. Мне тут больше непонятно, почему рефлексия такая чудовищно дорогая — миллисекунды. Но если её нет, то и дороговизны нет, а ты ничего не мерял.

_> Потому как самая короткая запись обычного запроса является одновременно и самой оптимизированной.


Запроса SQL? Тогда это в общем случае, мягко говоря, сомнительно. И есть контрпримеры для многих баз, когда вложенный select дешевле сложного join, и другие аналогичные тонкости.

_> Автор статьи никак не мог этого осознать, пока ему не продемонстрировали этот самый запрос. Только отсюда он и появился, а не из каких-то идей писать всё руками.


И опять-таки ты плохо держишь тему.

_>P.S. Хотя в случае C# и желания максимальной производительности скорее всего только вариант голых строк и подходит.


Скорее StringBuilder

_> Но меня трудно назвать сторонником данного подхода, т.к. я собственно не сторонник самого C#. )))


Ну, зачем ты перешёл на рекламу C++ в треде дотнет против явы, отдельный вопрос.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.