powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ to SQL - непонятный кореллированный подзапрос...
6 сообщений из 31, страница 2 из 2
LINQ to SQL - непонятный кореллированный подзапрос...
    #35545177
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa
Hand made всегда качественней.Подобные тулзовины скрывают тонкости, а знать сиквелевые патроха никому не помешает.
ещё предложи к ассемблеру вернуться, знать как работает процессор всегда полезно
...
Рейтинг: 0 / 0
LINQ to SQL - непонятный кореллированный подзапрос...
    #35545251
Чорный Бада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaHand made всегда качественней.Подобные тулзовины скрывают тонкости, а знать сиквелевые патроха никому не помешает.
Спасибо не надо. Насмотрелись по жизни уже вашего (ну, не лично вашего а вообще) "качественного хендмейда" :-)
...
Рейтинг: 0 / 0
LINQ to SQL - непонятный кореллированный подзапрос...
    #35546184
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все зависит от того откуда руки растут.Агитировать никого не собираюсь, но я тоже не по наслышке знаю, что такое ORM.Далеко ходить не нужно,достаточно посмотреть на данный запрос. Здесь гарантированны дедлоки и недетские тормоза
...
Рейтинг: 0 / 0
LINQ to SQL - непонятный кореллированный подзапрос...
    #35563851
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
че-то меня линк сегодня сильно разочаровал

запрос вроде обычный
Код: plaintext
db.Table.OrderBy(p=>p.SortField).Take( 30 ).Select(p=>new MyObj() {..})

превращается вот в такое дерьмище
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT field1,field2,...
FROM (
    SELECT TOP ( 30 ) field1,field2,...
    FROM [dbo].[Table] AS [t0]
    ORDER BY [t0].[SortField]
    ) AS [t1]
ORDER BY [t1].[SortField]

Без Take все нормально. Дальше-хуже. Я в этом запросе делаю groupjoin и вытягиваю для каждого элемента подколлекцию.
Если без Take, то все пучком. С Take - жесть и подколлекция тянется отдельным запросом на каждый элемент основного списка. Если добавить Skip, то опять все тянется за раз, правда очень страшным запросом (из-за сортировки) :)


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT field1,field2, ..., (
    SELECT COUNT(*)
    FROM (
        SELECT NULL AS [EMPTY]
        FROM [dbo].[SubTable] AS [t4]
        WHERE [t4].[SubTable.pr_id] = [t2].[id]
        ) AS [t5]
    ) AS [value]
FROM (
    SELECT t1.field1,t1.field2,..., [t1].[ROW_NUMBER]
    FROM (
        SELECT ROW_NUMBER() OVER (ORDER BY [t0].[SortField], [t0].[id]) AS [ROW_NUMBER], ...
        FROM [dbo].[Table] AS [t0]
        ) AS [t1]
    WHERE [t1].[ROW_NUMBER] BETWEEN @p0 +  1  AND @p0 + @p1
    ) AS [t2]
LEFT OUTER JOIN [dbo].[SubTable] AS [t3] ON [t3].[pr_id] = [t2].[id]
ORDER BY [t2].[ROW_NUMBER], [t3].[id]

прям песдец какой-то, раньше я за ним такого бреда не замечал. В результате с пейджингом первая страница тянется мегадолго (из-за того что он подтягивает для каждой строки коллекцию), а все остальные мегабыстро. бред %(
...
Рейтинг: 0 / 0
LINQ to SQL - непонятный кореллированный подзапрос...
    #35564136
Чорный Бада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыпревращается вот в такое дерьмище
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT field1,field2,...
FROM (
    SELECT TOP ( 30 ) field1,field2,...
    FROM [dbo].[Table] AS [t0]
    ORDER BY [t0].[SortField]
    ) AS [t1]
ORDER BY [t1].[SortField]

смотрится говённо, но, с практической точки зрения ничего страшного - ИМХО, на 30 записях чем-либо убить производительность всё равно нереально.

Дальше-хуже. Я в этом запросе делаю groupjoin и вытягиваю для каждого элемента подколлекцию.
Если без Take, то все пучком. С Take - жесть и подколлекция тянется отдельным запросом на каждый элемент основного списка.
Тут надо было бы попробовать поиграться с опцией LoadWith(...)
...
Рейтинг: 0 / 0
LINQ to SQL - непонятный кореллированный подзапрос...
    #35564292
зыы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
идея была ничего, но это нифига не меняет :(
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ to SQL - непонятный кореллированный подзапрос...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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