|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
ну и что вы прикопались к linq and orm каждый танцует как умеет ( научен) я когда увидел в передпоследней конторе как пишут код без орм (~ 100 таблиц) и ооп все в лесенку одной простыней, тоже сначала прихуел, потом ничо, показал, объяснил - начали жрать орм аш за ушами трещало. linq такая зверь что если не хватает функционала его можно накручивать как в меньшую сторону так и в большую если не нравится как он формирует запросы делайте свой обходчик - паттерн - визитер, если ваще не нравится ковыряйтесь в навозе индексах, на любителя ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2016, 19:17 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Алексей КЧто мешает строить LINQ запрос таким образом, чтобы на выходе получился нужный SQL запрос? Смысл? Если знаешь какой должен быть SQL запрос, то зачем тратить время на подгонку LINQ запроса под результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2016, 20:28 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima TАлексей КЧто мешает строить LINQ запрос таким образом, чтобы на выходе получился нужный SQL запрос? Смысл? Если знаешь какой должен быть SQL запрос, то зачем тратить время на подгонку LINQ запроса под результат?Ну если ты сам не можешь ответить на этот вопрос, то тогда да, для тебя смысла использовать LINQ2SQL нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2016, 05:03 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Алексей КDima Tпропущено... Смысл? Если знаешь какой должен быть SQL запрос, то зачем тратить время на подгонку LINQ запроса под результат?Ну если ты сам не можешь ответить на этот вопрос, то тогда да, для тебя смысла использовать LINQ2SQL нет. я например, использую NHibernate. Но желания противоставления его SQL у меня как-то не возникало. И с тезисом "Смысл? Если знаешь какой должен быть SQL запрос, то зачем тратить время на подгонку LINQ запроса под результат?" полностью согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2016, 05:27 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
fsharp_fsharpАлексей Кпропущено... Ну если ты сам не можешь ответить на этот вопрос, то тогда да, для тебя смысла использовать LINQ2SQL нет. я например, использую NHibernate. Но желания противоставления его SQL у меня как-то не возникало. И с тезисом "Смысл? Если знаешь какой должен быть SQL запрос, то зачем тратить время на подгонку LINQ запроса под результат?" полностью согласен.Рад, что ты нашёл единомышленника. Не понимаю, почему типизация при работе с данными для вас ничего не значит. Впрочем, моё какое дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2016, 05:46 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
fsharp_fsharpЕсли знаешь какой должен быть SQL запрос, то зачем тратить время на подгонку LINQ запроса под результат?" . Это время окупится при отладке и рефакторинге. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2016, 09:23 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
X-CiteЯ имел ввиду, что те запросы которые она генерирует, особенно сложные, настолько сложны при чтении их на sql, что не только человек, не может разобрать что там выбирается (без рефакторинга), но и сам оптимизатор строит далеко не оптимальные планы. Для многомиллионных таблиц, не оптимальный план грозит долгой выборкой. На небольших таблицах, там все равно как данные выбирались. Важно использовать то, что подходит под конкретную цель. Если быстрая разработка с одинарными инструкциями (актуальными для OLTP баз), то linq или что там, подойдет вполне. Так же есть запросы, которые генерирует программист, особенно сложные, настолько сложны при чтении их на sql, что не только человек, не может разобрать что там выбирается (без рефакторинга), но и сам оптимизатор строит далеко не оптимальные планы. Для многомиллионных таблиц, не оптимальный план грозит долгой выборкой. На небольших таблицах, там все равно как данные выбирались. Важно использовать то, что подходит под конкретную цель. Если быстрая разработка с одинарными инструкциями (актуальными для OLTP баз), то linq или что там, подойдет вполне. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2016, 17:12 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Алексей КТакое можно сделать через view. Но использовать хинты приходится редко, это обычно следствие каких-нибудь проблем, которые лучше устранить, чем бороться со следствием. Ну или ХП. Просто БД ведет начала ваяться на SQL Server 6.0 и теперь очень старая и очень большая, используется в 100500 различных подсистемах. Хотя все равно не понятно, почему оптимизатор не использует специально созданный для join индекс без явного указания. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2016, 17:33 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
ЕвгенийВТак же есть запросы, которые генерирует программист, особенно сложные, настолько сложны при чтении их на sql, что не только человек, не может разобрать что там выбирается (без рефакторинга), но и сам оптимизатор строит далеко не оптимальные планы. Есть такое. Причем оптимизатор начинает тупить раньше чем пропадает понимание при чтении запроса. Конкретный пример: запрос 20-30 строк, с подвывертами, но читаемый, выполнялся почти минуту. Вынес один подзапрос во временную таблицу и залетало, меньше секунды. В чистом виде затупление оптимизатора, как понимаю он пытался запрос с подзапросами скомбинировать в единый план и не смог. ЕвгенийВХотя все равно не понятно, почему оптимизатор не использует специально созданный для join индекс без явного указания. Может статистики отключены или еще чего. Это лучше в форуме по MSSQL спросить. Использование хинтов - последнее дело, т.к. по началу они помогают, а в какой-то момент могут наоборот тормоза начать создавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2016, 18:04 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
ЕвгенийВАлексей КТакое можно сделать через view. Но использовать хинты приходится редко, это обычно следствие каких-нибудь проблем, которые лучше устранить, чем бороться со следствием. Ну или ХП. Просто БД ведет начала ваяться на SQL Server 6.0 и теперь очень старая и очень большая, используется в 100500 различных подсистемах.Я предложил view, потому что LINQ с view может работать как с обычной таблицей. В данном случае view сделать примерно таким, больше в него ничего не помещать: Код: sql 1. 2.
ЕвгенийВХотя все равно не понятно, почему оптимизатор не использует специально созданный для join индекс без явного указания.Ну всякое бывает, но как правило анализ ситуации показывает, что у оптимизатора есть причины выбрать выбранный план выполнения. Во всяком случае я для себя решил, что использование хинтов, это временное решение, требующее дальнейшего разбирательства. зы: Ну а если система содержит большую часть логики в хранимых процедурах, то и нет смысла использовать LINQ в такой системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 04:38 |
|
|
start [/forum/topic.php?fid=17&gotonew=1&tid=1349361]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
33ms |
get topic data: |
14ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 234ms |
total: | 387ms |
0 / 0 |