|
LINQ - проще
|
|||
---|---|---|---|
#18+
love_bachДмитрий МухВМоисеев, автор топика не удосужился ответить на вопрос о типа колонки Comments, ему походу топик совсем не интересен ну, допустим, varchar(MAX). возможно, извлекает только по Id. возможно в какой-то журнал извлекает записи, где это поле только первые надцать символов. что дальше? А то, что надо значть особенности хранения NVARCHAR(MAX) и как это негативно складывается на производительности выборки, когда нужно не одну запись по Id получить, а множество, да ещё и с группировкой как у ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2018, 13:21 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Поправлюсь: как негативно это может сложится на производительности выборки. Я же не знаю какие там у ТС объёмы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2018, 13:25 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Dima TОптимизатор БД не переоценивай. В MS SQL он продвинутый, но не сильно. На сложных запросах может выбирать очень неоптимальные планы выполнения. Неоптимальный план выполнения будет только при изначально неправильно составленном запросе. SQL гибок, так, что одно и то же, можно получить большим количеством запросов. Есть много сахара, позволяющего сократить запрос, поэтому многим кажется, чем короче выглядит запрос (особенно с применением сахара), тем он быстрее. Это не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2018, 23:38 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
hVosttбольшим количеством запросов. *способов ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2018, 23:38 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
hVosttDima TОптимизатор БД не переоценивай. В MS SQL он продвинутый, но не сильно. На сложных запросах может выбирать очень неоптимальные планы выполнения. Неоптимальный план выполнения будет только при изначально неправильно составленном запросе. А что значит неправильно? Получившийся в начале топика запрос он как составлен? Ну и сильное конечно утверждение: "только при изначально неправильно составленном запросе" ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2018, 10:51 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
hVosttЕсть много сахара, позволяющего сократить запрос Например? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2018, 10:53 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Дмитрий МухА что значит неправильно? Получившийся в начале топика запрос он как составлен? Ну и сильное конечно утверждение: "только при изначально неправильно составленном запросе" Это нормальное утверждение. Посмотри на LINQ запрос в начале топика с точки зрения коллекции объектов. Посмотри на получившийся запрос в SQL. Сделано ровно то, что было запрошено в LINQ. Если запрос LINQ собирается динамически, то гарантировано всё будет правильно работать. Ты начинаешь смотреть на задачу иначе с точки зрения объединения запросов или оконных функций, будучи уверенным, что это действительно _на порядки_ будет быстрее. С чего вдруг-то? Неправильно составленный запрос, это который также неоптимален, или неверен и в LINQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2018, 15:54 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Дмитрий МухhVosttЕсть много сахара, позволяющего сократить запрос Например? with, расширяющие функции, раширенные функции и операторы для группировки, оконные функции, дофига всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2018, 15:55 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
hVosttДмитрий Мухпропущено... Например? with, расширяющие функции, раширенные функции и операторы для группировки, оконные функции, дофига всего. И почему же это сахар? К примеру в курсе как работают оконные функции под капотом? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2018, 16:04 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Дмитрий МухИ почему же это сахар? К примеру в курсе как работают оконные функции под капотом? В курсе, не во всех случаях конечно. Скажи ещё, не знаешь, как, например, пронумеровать записи без оконных функций? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2018, 17:21 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухИ почему же это сахар? К примеру в курсе как работают оконные функции под капотом? В курсе, не во всех случаях конечно. Скажи ещё, не знаешь, как, например, пронумеровать записи без оконных функций? )) Я знаю как переписать запрос в стартовом посте не в четыре этажа, а в один, гораздо короче и без оконных функций. И про меньше или равно и COUNT я тоже знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2018, 17:50 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Дмитрий МухЯ знаю как переписать запрос в стартовом посте не в четыре этажа, а в один, гораздо короче и без оконных функций. Да, но это будет другой запрос. Даже если он будет возвращать аналогичные результаты. Просто прочитай, что задекларировано в LINQ. А если вот эти Count-ы, будут использовать динамические LINQ выражения, или вообще всё строится на спецификациях? Не всё так просто, как может показаться в лоб. Да и в LINQ можно переписать запрос, вот эта задача выглядит по-интереснее. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2018, 22:43 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Или нам не нужны Count-ы в результатах, а как условие для сортировки или фильтрации, м? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2018, 22:44 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
hVosttDima TОптимизатор БД не переоценивай. В MS SQL он продвинутый, но не сильно. На сложных запросах может выбирать очень неоптимальные планы выполнения. Неоптимальный план выполнения будет только при изначально неправильно составленном запросе. Неоднократно сталкивался с тормозами MSSQL в запросах с подзапросами Код: sql 1.
Оптимизатор почему-то строил нездоровый план. В итоге лечил временными таблицами Код: sql 1. 2.
БД большая, некоторые запросы ускорялись в 10 и более раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 07:29 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Dima TОптимизатор почему-то строил нездоровый план. Вот первых учесть все правила построения оптимального плана любого запроса - это не реально. А во вторых оптимизатор ограничен по времени. Из того, что успел построить, выбрал более подходящий. Никакой магии. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 08:36 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
hVosttИли нам не нужны Count-ы в результатах, а как условие для сортировки или фильтрации, м? Перечитай первое сообщение в топике ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 08:38 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Dima ThVosttпропущено... Неоптимальный план выполнения будет только при изначально неправильно составленном запросе. Неоднократно сталкивался с тормозами MSSQL в запросах с подзапросами Код: sql 1.
Оптимизатор почему-то строил нездоровый план. В итоге лечил временными таблицами Код: sql 1. 2.
БД большая, некоторые запросы ускорялись в 10 и более раз.темка обсуждения бага сиквела в ветке админов бд есть? Т.к.лечится временными это жестоко) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 09:03 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухЯ знаю как переписать запрос в стартовом посте не в четыре этажа, а в один, гораздо короче и без оконных функций. Да, но это будет другой запрос. Даже если он будет возвращать аналогичные результаты. love_bachпочему я тебя понял, а skyANA начал задавать "уточняющие" вопросы? Потому, что skyANA, с**а, знал, что так будет. hVosttskyANAЧто значит тот же самый? Возвращающий аналогичный результат? да, аналогичный результат при тех же вводных ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 09:43 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
hVosttПросто прочитай, что задекларировано в LINQ. А если вот эти Count-ы, будут использовать динамические LINQ выражения, или вообще всё строится на спецификациях? Не всё так просто, как может показаться в лоб. "Трудно найти в тёмной комнате чёрную кошку... особенно, если её там нет!" ТС не знал, как написать на SQL то, что ему надо, и написал на LINQ. Посмотрел сгенерированный текст запроса и понял, что сам бы он скорее поседел, чем додумался до решения на SQL. Вынес это "достижение" на форум и спалился. Какие динамические выражения? Какие спецификации? Я тебя умоляю ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 09:49 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
skyANAhVosttИли нам не нужны Count-ы в результатах, а как условие для сортировки или фильтрации, м? Перечитай первое сообщение в топике Ну я немного шире гляжу на задачу. Понятно, что если чисто в конкретные данные упираться, то да, там типа запрос компактный можно написать, но как это сделать в рамках EF? Не было сказано. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 12:05 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Дмитрий МухТС не знал, как написать на SQL то, что ему надо, и написал на LINQ. Посмотрел сгенерированный текст запроса и понял, что сам бы он скорее поседел, чем додумался до решения на SQL. Вынес это "достижение" на форум и спалился. Какие динамические выражения? Какие спецификации? Я тебя умоляю Ну это не интерсно. На SQL может любой, а как насчёт в EF? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 12:07 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
hVosttДмитрий МухТС не знал, как написать на SQL то, что ему надо, и написал на LINQ. Посмотрел сгенерированный текст запроса и понял, что сам бы он скорее поседел, чем додумался до решения на SQL. Вынес это "достижение" на форум и спалился. Какие динамические выражения? Какие спецификации? Я тебя умоляю Ну это не интерсно. На SQL может любой, а как насчёт в EF? Для начала .Sum() вместо .Count() попробовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 12:48 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
skyANAДля начала .Sum() вместо .Count() попробовать? Ну да, а ещё в LINQ можно несколько запросов с одним джойнить, проблема только с outer join. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 13:31 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Relic Hunter, Linq определённо крут, если вы понимаете, что будет на выходе и умеете дизайнить базу данных. Потому что в неумелых ручках потом нехилая лажа может возникнуть. А длинный запрос очень часто бывает более производительным, но не факт, что это относится к данному примеру. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 13:50 |
|
LINQ - проще
|
|||
---|---|---|---|
#18+
Может вы господа сначала документацию почитаете, прежде чем вываливать на форум всякую бредятину? А то у одного оптимизатор хватает первый план который успел построить за заданное время, у второго проблемы с outer join'ом... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 14:00 |
|
|
start [/forum/topic.php?fid=17&msg=39748904&tid=1349144]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
161ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 234ms |
total: | 504ms |
0 / 0 |