powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сложные SQL запросы на языке LINQ
25 сообщений из 135, страница 4 из 6
Сложные SQL запросы на языке LINQ
    #39310598
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T а как план в linq смотреть?

Там нет плана
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310601
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЯ не смотрю "Поле чудес".

Слив засчитан.Кем?
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310603
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КDima Tпропущено...

Возможно..."К гадалке не ходи" (ц) :-)
а дальше прочитал что я писал? Тут топик где я just for fun развлекался, и уменьшение буфера до размеров кэша проца дало ускорение почти вдвое.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310604
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ККем?

Дурачка включаешь? На работе наверное прокатывает?
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310608
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttС какого ляда это они сортированные? Оверхед по сравнению с данными минимален. Для небольших коллекций конечно эффективней остортировать коллекцию, но это вообще фигня, а не оптимизация.
Небольших это сколько? Я поражаюсь на клев на О(1), посчитать хэш это бесплатно чтоли? Хэш таблица места не занимает? Жертвы маркетологов.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310617
fsharp_fsharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt1. Кривая структура БД, изначально не подходящая для задач, решаемых LINQ

БД, особенно 10-15 лет назад, ничего не знали про LINQ. и как-то живут, по своим реляционным правилам. а БД, как и все в этом мире (2-й закон термодинамики неумолим), со временем тоже не молодеют, целлюлитом обрастают, или, даже, болеют. но живут.

проектирование БД под ОРМ - это зло.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310619
fsharp_fsharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КТы не напишешь на SQL то, что можно написать на LINQ. И что?

Примерчики в студию!

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
SELECT  Id,
                         Name,
                         Note,
                         URL,
                         DateInsert,
                         DateUpdate,
                         STUFF((SELECT ', ' + a.CategoryName
                                 FROM (SELECT d.Id,
                                 d.Name,
                                 d.Note,
                                 d.URL,
                                 d.DateInsert,
                                 d.DateUpdate,
                                 c.Name as CategoryName
                            FROM SomeData as d
                            LEFT OUTER JOIN SomeData_Category AS dc
                              ON dc.SomeDataId = d.Id
                            LEFT OUTER JOIN Category as c
                              ON dc.CategoryId = c.Id) a
                                WHERE b.Id = a.Id 
                                  FOR XML PATH('')),
                               1,
                               1,
                               '') CategoryNames
                    FROM (SELECT d.Id,
                                 d.Name,
                                 d.Note,
                                 d.URL,
                                 d.DateInsert,
                                 d.DateUpdate,
                                 c.Name as CategoryName
                            FROM SomeData as d
                            LEFT OUTER JOIN SomeData_Category AS dc
                              ON dc.SomeDataId = d.Id
                            LEFT OUTER JOIN Category as c
                              ON dc.CategoryId = c.Id) b
                   GROUP BY Id, Name, Note, URL, DateInsert, DateUpdate
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310623
fsharp_fsharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КDima T,

Ну и вообще, никто не заставляет создавать БД с помощью EF. Как по мне, так методика code-first так себе . БД лучше создавать "обычными" средствами, потом по БД генерировать DbContext. Благо, при наличии T4 Text Template кодогенераторы пишутся за 5 минут. Да и готовых кодогенераторов хватает.

зависит от масштаба. для мелких систем - пойдет (хотя там столько гемороя, что даже там - ну его)
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310624
fsharp_fsharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TПо теме топика: понимаю негодование ТС и понимаю откуда родилось требование LINQ наше всё. LINQ не дает стрелять в ногу, типизация не дает делать грубых ошибок, поэтому в одном большом проекте могут уживаться гуру и студенты, а на сегодня это важно, т.к. проекты большие, а гур мало и дорогие они. Тут вопрос больше в плоскости денег, что выходит за рамки данного форума, да и сайта тоже.

фигня какая-то: что, студенты уже SQL не знают? да наоборот, гораздо сложнее включить мозги в ОРМ, так как ОРМ не отменяет SQL, а делает взгляд на него более критичным с точки зрения "объектности"
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310643
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TАлексей Кпропущено...
"К гадалке не ходи" (ц) :-)
а дальше прочитал что я писал? Тут топик где я just for fun развлекался, и уменьшение буфера до размеров кэша проца дало ускорение почти вдвое.Это замечательно, но это не делает Dictionary<> сортированным списком. Впрочем, если хочешь, чтобы это было так, то пусть будет так. :-)
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310647
fsharp_fsharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueНу и не могу не заметить - порой то, что можно запросто сделат на LINQ - очень запарно делать на SQL.

если речь и дет о запросе реляционных данных, то SQL тут еще пока никто не обогнал ни в простоте, ни в эффективности
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310649
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsharp_fsharpАлексей КDima T,

Ну и вообще, никто не заставляет создавать БД с помощью EF. Как по мне, так методика code-first так себе . БД лучше создавать "обычными" средствами, потом по БД генерировать DbContext. Благо, при наличии T4 Text Template кодогенераторы пишутся за 5 минут. Да и готовых кодогенераторов хватает.

зависит от масштаба. для мелких систем - пойдет (хотя там столько гемороя, что даже там - ну его)Не понял, что не так с кодогенератором?
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310650
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsharp_fsharpMonochromatiqueНу и не могу не заметить - порой то, что можно запросто сделат на LINQ - очень запарно делать на SQL.

если речь и дет о запросе реляционных данных, то SQL тут еще пока никто не обогнал ни в простоте, ни в эффективностиНапример, в SQL нет аналога ассоциаций.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310655
fsharp_fsharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кfsharp_fsharpпропущено...


если речь и дет о запросе реляционных данных, то SQL тут еще пока никто не обогнал ни в простоте, ни в эффективностиНапример, в SQL нет аналога ассоциаций.

а чем PK - FK не ассоциация?
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310656
fsharp_fsharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кfsharp_fsharpпропущено...


зависит от масштаба. для мелких систем - пойдет (хотя там столько гемороя, что даже там - ну его)Не понял, что не так с кодогенератором?

я не на этом сделал акцент. а на том, что "методика code-first так себе" - с этим согласен. а все эти кодогенераторы, особенно на легаси БД...
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310657
fsharp_fsharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsharp_fsharphVosttпропущено...


Примерчики в студию!

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
SELECT  Id,
                         Name,
                         Note,
                         URL,
                         DateInsert,
                         DateUpdate,
                         STUFF((SELECT ', ' + a.CategoryName
                                 FROM (SELECT d.Id,
                                 d.Name,
                                 d.Note,
                                 d.URL,
                                 d.DateInsert,
                                 d.DateUpdate,
                                 c.Name as CategoryName
                            FROM SomeData as d
                            LEFT OUTER JOIN SomeData_Category AS dc
                              ON dc.SomeDataId = d.Id
                            LEFT OUTER JOIN Category as c
                              ON dc.CategoryId = c.Id) a
                                WHERE b.Id = a.Id 
                                  FOR XML PATH('')),
                               1,
                               1,
                               '') CategoryNames
                    FROM (SELECT d.Id,
                                 d.Name,
                                 d.Note,
                                 d.URL,
                                 d.DateInsert,
                                 d.DateUpdate,
                                 c.Name as CategoryName
                            FROM SomeData as d
                            LEFT OUTER JOIN SomeData_Category AS dc
                              ON dc.SomeDataId = d.Id
                            LEFT OUTER JOIN Category as c
                              ON dc.CategoryId = c.Id) b
                   GROUP BY Id, Name, Note, URL, DateInsert, DateUpdate



в оракле короче это пишется при помощи LISTAGG
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310658
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T Monochromatique ведь утверждает что EF настолько хорош что опускаться до особенностей работы SQL-сервера не надо, не надо заморачиваться что там за СУБД под твоей прогой, EF сам все порешает.

Слушай, Дима Тэ, это же у тебя там что-то с линком не срастается; нравится писать селекты в блокноте - так вперед. Не знаю, где ты находишься в пищевой цепочке разработки, но лично я бы решение на прямых запросах не заказал.

Я думаю, такими же положениями руководствуются утырки из 1С, которые генерят текст запроса в рантайме - А-ЧО-ТАКОВА?

Каждому свое. Я прямыми запросами еще в JDBC наелся - рефакторинг - сказка. Знаешь такое слово? ))))
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310659
fsharp_fsharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я про то, что в LINQ это сделать нельзя, и еще масса полезных "классических" запросов, которые LINQ не осилит. тут только мапить DTO на SQL
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310660
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsharp_fsharpMonochromatiqueНу и не могу не заметить - порой то, что можно запросто сделат на LINQ - очень запарно делать на SQL.

если речь и дет о запросе реляционных данных, то SQL тут еще пока никто не обогнал ни в простоте, ни в эффективности

Выбрать top 10 контрагентов по продажам за месяц и выбрать у каждого самый крупный, но не максимальный заказ. Второй по сумме, в общем.

На LINQ одна строчка. На SQL?
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310663
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueПерегибаешь, хвост. И сравнить можно что угодно с чем угодно, хватало бы "фантазии".

Нужно достать данные из БД - встает непростой выбор - а не пописать ли мне raw текст вставного SQL-запроса, или нажать несколько кнопок (linq) и данные уже в памяти. Что выбираем? Почему? Конечно linq и имеено из-за удобства\быстроты и прочего.

Скажи нам - почему ТЫ выбираешь LINQ?

Лет 5 наверное ещё пройдёт, прежде чем да некоторых дойдёт, что LINQ это не замена SQL.

Сколько лет должно пройти, чтобы ты забил в яндекс - как расшифровывается "LINQ"? Ты сам то, знаешь что это такое?
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310693
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TLINQ не дает стрелять в ногу, типизация не дает делать грубых ошибок, поэтому в одном большом проекте могут уживаться гуру и студенты, а на сегодня это важно, т.к. проекты большие, а гур мало и дорогие они.

Это строчки из резюме? ))))
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310760
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsharp_fsharpАлексей Кпропущено...
Например, в SQL нет аналога ассоциаций.

а чем PK - FK не ассоциация?PK и FK это constraint. Аналог ассоциации это join.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310767
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsharp_fsharpя про то, что в LINQ это сделать нельзя, и еще масса полезных "классических" запросов, которые LINQ не осилит. тут только мапить DTO на SQLНу давай перечислим случаи, когда из-за ограниченных возможностей LINQ фрагмент запроса придётся разместить во view:

1. Рекурсивный запрос.
2. Необходимость использования хинтов.
3.......

Можешь продолжить?
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310779
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Для начала необходимо понять, что LINQ это не альтернатива SQL, никогда ей не была, и вовсе не задумывалось таковой. Поэтому сравнивать SQL vs LINQ — вообще не корректно, в принципе. Это как сравнивать пилу с молотком.


Не как пилу с молотком, но как цепную бензопилу и циркульную электропилу -- вполне можно.
И то, и другое служит для одних и тех же целей. Можно сделать с помощью одного, можно с помощью другого.
Встроенные (embedded) запросы были очень давно, и всегда их сравнивали с невстроенными.

Так что всё правомерно.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310794
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если таблиц немного, база весит меньше пол-терабайта, то может строить запросы через linq или orm какую или еще что, прокатит.
Но по собственному опыту те запросы которые генерятся orm-ками для таблиц по 60млрд строк настолько неоптимальные, что оптимизатор mssql (например) просто выпадает в осадок...
...
Рейтинг: 0 / 0
25 сообщений из 135, страница 4 из 6
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сложные SQL запросы на языке LINQ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]