powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сложные SQL запросы на языке LINQ
25 сообщений из 135, страница 3 из 6
Сложные SQL запросы на языке LINQ
    #39310487
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВMonochromatique
Ммм.. Чем меньше возни со скулем - тем лучше. ИМХО, этому должно быть всё подчиненно.

Как например через linq такое сделать?
Код: sql
1.
2.
3.
FROM t po WITH (INDEX(IX_Gsm_sms_pdu_out_Request_command_id_request_time))
        INNER JOIN dbo.objects o 
        ON o.obj_id = po.sms_id


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

EF их сама создает. Нужны какие-то еще? Наверное, можно создать, но лично у меня такой нужды не было.

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

Что можно насоздавать на автомате? По полям с ID разве что, чтобы ассоциации не тормозили. Но на этом жизнь не заканчивается. Есть не ключевые поля (даты документов, номера и т.д.), которые часто в условие отбора попадают, сомневаюсь что EF такие индексы создает.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310539
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TMonochromatiqueEF их сама создает. Нужны какие-то еще? Наверное, можно создать, но лично у меня такой нужды не было.

Что можно насоздавать на автомате? По полям с ID разве что, чтобы ассоциации не тормозили. Но на этом жизнь не заканчивается. Есть не ключевые поля (даты документов, номера и т.д.), которые часто в условие отбора попадают, сомневаюсь что EF такие индексы создает.В миграциях вручную можно создавать любые индексы. Тот же DDL, вид сбоку.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310545
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Ну и вообще, никто не заставляет создавать БД с помощью EF. Как по мне, так методика code-first так себе. БД лучше создавать "обычными" средствами, потом по БД генерировать DbContext. Благо, при наличии T4 Text Template кодогенераторы пишутся за 5 минут. Да и готовых кодогенераторов хватает.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310554
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВ миграциях вручную можно создавать любые индексы. Тот же DDL, вид сбоку.
Ключевое слово "вручную". Monochromatique ведь утверждает что EF настолько хорош что опускаться до особенностей работы SQL-сервера не надо, не надо заморачиваться что там за СУБД под твоей прогой, EF сам все порешает. А чтобы что-то сделать вручную - надо понимать что и для чего надо делать, т.е. знать особенности работы СУБД.
offtopПисал уже эту байку, повторюсь:
довелось мне сопровождать один сайт писаный на заказ, до меня работу приняли, по началу работало, а как стало выходить на рабочие объемы - стало жестко тупить.
Полез во внутря - ни одного индекса !!! Создал - сайт ожил, залетал.
Спросил разработчика (был доступен): "Как так?"
Получил шикарный ответ: "MySQL настолько крут что индексы не нужны!"

А тут слышу "EF настолько крут ..."
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310562
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TАлексей КВ миграциях вручную можно создавать любые индексы. Тот же DDL, вид сбоку.
Ключевое слово "вручную".Ну а тут без вариантов. Чудес не бывает, только вручную.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310563
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По теме топика: понимаю негодование ТС и понимаю откуда родилось требование LINQ наше всё. LINQ не дает стрелять в ногу, типизация не дает делать грубых ошибок, поэтому в одном большом проекте могут уживаться гуру и студенты, а на сегодня это важно, т.к. проекты большие, а гур мало и дорогие они. Тут вопрос больше в плоскости денег, что выходит за рамки данного форума, да и сайта тоже.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310565
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TПо теме топика: понимаю негодование ТС и понимаю откуда родилось требование LINQ наше всё. LINQ не дает стрелять в ногу, типизация не дает делать грубых ошибок, поэтому в одном большом проекте могут уживаться гуру и студенты, а на сегодня это важно, т.к. проекты большие, а гур мало и дорогие они. Тут вопрос больше в плоскости денег, что выходит за рамки данного форума, да и сайта тоже.Наоборот. Наплодить рукописного SQL много ума не надо, это все умеют. Наладить разработку типизированных LINQ решений намного сложнее, но оно того стоит. У меня есть старые SQL-проекты, и новые LINQ-проекты, которые мы параллельно развиваем. Поверь, мне есть с чем сравнивать. :-)
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310577
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНаоборот. Наплодить рукописного SQL много ума не надо, это все умеют.
С дуру ... сам знаешь. Хоть в SQL, хоть в LINQ. SQL он только с виду прост, хотя LINQtoSQL не читабельнее. Дело привычки.
Алексей КНаладить разработку типизированных LINQ решений намного сложнее, но оно того стоит. У меня есть старые SQL-проекты, и новые LINQ-проекты, которые мы параллельно развиваем. Поверь, мне есть с чем сравнивать. :-)
Я даже не сомневаюсь что тебе есть с чем сравнивать (ИМХУ ты себя неопытного сравниваешь с собой опытным). Сравни инструменты, тот мой топик, твоя фраза "Но я в этом смысла не вижу" 19667066 , ты интуитивно сравниваешь, а у меня есть численный критерий (время выполнения), чувствуешь разницу? Я могу пописать разные варианты одного и того же и посмотреть на фактический результат, а у тебя только один инструмент - интуиция.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310579
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТы не напишешь на SQL то, что можно написать на LINQ. И что?

Примерчики в студию!
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310580
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueДля быстрой обработки данных. Зачем еще данные индексируют? Для красоты?

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

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

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

Лет 5 наверное ещё пройдёт, прежде чем да некоторых дойдёт, что LINQ это не замена SQL.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310583
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T... а у тебя только один инструмент - интуиция.Ну а как. У меня же доступа к твоей БД нету, чтобы планы и статистику смотреть.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310584
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueДля быстрой обработки данных. Зачем еще данные индексируют? Для красоты?

Для работы с данными в памяти есть коллекции и словари. Зачем индексировать, ещё раз поинтересуюсь?
словари, т.е. Dictionary<> это и есть сортированные данные, но с оверрхэдом как по памяти так и по времени наполнения. Если данные статичны, то дешевле (по времени и памяти) залить из в массив и отсортировать.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310585
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КТы не напишешь на SQL то, что можно написать на LINQ. И что?

Примерчики в студию!Я не смотрю "Поле чудес".
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310586
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tсловари, т.е. Dictionary<> это и есть сортированные данные, но с оверрхэдом как по памяти так и по времени наполнения. Если данные статичны, то дешевле (по времени и памяти) залить из в массив и отсортировать.Dictionary<> это хэш-таблица.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310587
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КDima T... а у тебя только один инструмент - интуиция.Ну а как. У меня же доступа к твоей БД нету, чтобы планы и статистику смотреть.
а как план в linq смотреть? Я уже спрашивал выше, никто не ответил. Без обид, я везде в спорных вопросах пишу ИМХУ, т.е. я так думаю, но других так делать не заставляю. Мой опыт - это мой опыт (Visual FoxPro много лет, никаких типов, сплошной raw SQL)
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310589
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TАлексей Кпропущено...
Ну а как. У меня же доступа к твоей БД нету, чтобы планы и статистику смотреть.
а как план в linq смотреть?Как посмотреть план выполнения SQL-запроса, сгенерированного LINQ? Берём "профайлером" и смотрим, ты же как-то смотрел. Или я не понял вопроса.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310590
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КDima Tсловари, т.е. Dictionary<> это и есть сортированные данные, но с оверрхэдом как по памяти так и по времени наполнения. Если данные статичны, то дешевле (по времени и памяти) залить из в массив и отсортировать.Dictionary<> это хэш-таблица.
Возможно, но работа с массивами быстрее если они влазят в кэш проца.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310591
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TБез обид, я везде в спорных вопросах пишу ИМХУ, т.е. я так думаю, но других так делать не заставляю. Мой опыт - это мой опыт (Visual FoxPro много лет, никаких типов, сплошной raw SQL)Зачем мне кого-то тут заставлять? Просто делюсь своим мнением, не более того. Просто не согласен с некоторыми высказываниями, о чём и сообщил.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310593
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueСкажи нам - почему ТЫ выбираешь LINQ?

Ну вот пример есть, кстати, хороший. Есть у нас проект, где используется параллельно сразу основных 4 базы данных: MS SQL для мета-данных и истории (CQRS), другой MS SQL с read-only генерируемой нормализованной базой для отчётов, MongoDb для хранения кеша бизнес-данных и Lucene для поиска.

К бизнес-данным и мета-информации есть доступ с помощью LINQ через слой доменной абстракции (как часть DSL). Единый доступ. Профит от генерации SQL в данном случае составляет лишь 20-30% от силы. Основная мощь в построении слоя бизнес-абстракции. Любое изменение это история. Мы уже обкатывали так называемые путешествия в прошлое, например, можно открыть и посмотреть состояние системы в режиме чтения на определенную дату и время. Можно откатывать отдельные транзакции. Все формочки генерятся. Бизнес-логика пишется вообще на Lua.

Профит от LINQ тут колоссальный, так как на нём сидят все прикладные запросы к данным и он протаскивается даже внутрь бизнес-скриптов (политики безопасности, бизнес-валидация, бизнес-события, бизнес-логика). Ну а те, кто видят в LINQ лишь способ спрятаться от написания SQL, то это фейл, что ещё могу сказать.
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310594
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TАлексей Кпропущено...
Dictionary<> это хэш-таблица.
Возможно..."К гадалке не ходи" (ц) :-)
...
Рейтинг: 0 / 0
Сложные SQL запросы на языке LINQ
    #39310595
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tсловари, т.е. Dictionary<> это и есть сортированные данные, но с оверрхэдом как по памяти так и по времени наполнения. Если данные статичны, то дешевле (по времени и памяти) залить из в массив и отсортировать.

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

Слив засчитан. В чём смысл говорить то, что ты даже подтвердить не в силах? Кто б знал..
...
Рейтинг: 0 / 0
25 сообщений из 135, страница 3 из 6
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сложные SQL запросы на языке LINQ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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