|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
ЕвгенийВMonochromatique Ммм.. Чем меньше возни со скулем - тем лучше. ИМХО, этому должно быть всё подчиненно. Как например через linq такое сделать? Код: sql 1. 2. 3.
Т.е. сказать, используй специально созданный для это джойна фильтрованный индекс, от чего время исполнения уменьшается как минимум в 10000 раз?Такое можно сделать через view. Но использовать хинты приходится редко, это обычно следствие каких-нибудь проблем, которые лучше устранить, чем бороться со следствием. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 16:58 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima TТе же индексы кто-то должен создать. EF их сама создает. Нужны какие-то еще? Наверное, можно создать, но лично у меня такой нужды не было. Юзеров к адресам плохо привязывал наверное. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 17:03 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
MonochromatiqueEF их сама создает. Нужны какие-то еще? Наверное, можно создать, но лично у меня такой нужды не было. Что можно насоздавать на автомате? По полям с ID разве что, чтобы ассоциации не тормозили. Но на этом жизнь не заканчивается. Есть не ключевые поля (даты документов, номера и т.д.), которые часто в условие отбора попадают, сомневаюсь что EF такие индексы создает. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 17:52 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima TMonochromatiqueEF их сама создает. Нужны какие-то еще? Наверное, можно создать, но лично у меня такой нужды не было. Что можно насоздавать на автомате? По полям с ID разве что, чтобы ассоциации не тормозили. Но на этом жизнь не заканчивается. Есть не ключевые поля (даты документов, номера и т.д.), которые часто в условие отбора попадают, сомневаюсь что EF такие индексы создает.В миграциях вручную можно создавать любые индексы. Тот же DDL, вид сбоку. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 17:58 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima T, Ну и вообще, никто не заставляет создавать БД с помощью EF. Как по мне, так методика code-first так себе. БД лучше создавать "обычными" средствами, потом по БД генерировать DbContext. Благо, при наличии T4 Text Template кодогенераторы пишутся за 5 минут. Да и готовых кодогенераторов хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 18:04 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Алексей КВ миграциях вручную можно создавать любые индексы. Тот же DDL, вид сбоку. Ключевое слово "вручную". Monochromatique ведь утверждает что EF настолько хорош что опускаться до особенностей работы SQL-сервера не надо, не надо заморачиваться что там за СУБД под твоей прогой, EF сам все порешает. А чтобы что-то сделать вручную - надо понимать что и для чего надо делать, т.е. знать особенности работы СУБД. offtopПисал уже эту байку, повторюсь: довелось мне сопровождать один сайт писаный на заказ, до меня работу приняли, по началу работало, а как стало выходить на рабочие объемы - стало жестко тупить. Полез во внутря - ни одного индекса !!! Создал - сайт ожил, залетал. Спросил разработчика (был доступен): "Как так?" Получил шикарный ответ: "MySQL настолько крут что индексы не нужны!" А тут слышу "EF настолько крут ..." ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 18:29 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima TАлексей КВ миграциях вручную можно создавать любые индексы. Тот же DDL, вид сбоку. Ключевое слово "вручную".Ну а тут без вариантов. Чудес не бывает, только вручную. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 18:44 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
По теме топика: понимаю негодование ТС и понимаю откуда родилось требование LINQ наше всё. LINQ не дает стрелять в ногу, типизация не дает делать грубых ошибок, поэтому в одном большом проекте могут уживаться гуру и студенты, а на сегодня это важно, т.к. проекты большие, а гур мало и дорогие они. Тут вопрос больше в плоскости денег, что выходит за рамки данного форума, да и сайта тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 18:45 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima TПо теме топика: понимаю негодование ТС и понимаю откуда родилось требование LINQ наше всё. LINQ не дает стрелять в ногу, типизация не дает делать грубых ошибок, поэтому в одном большом проекте могут уживаться гуру и студенты, а на сегодня это важно, т.к. проекты большие, а гур мало и дорогие они. Тут вопрос больше в плоскости денег, что выходит за рамки данного форума, да и сайта тоже.Наоборот. Наплодить рукописного SQL много ума не надо, это все умеют. Наладить разработку типизированных LINQ решений намного сложнее, но оно того стоит. У меня есть старые SQL-проекты, и новые LINQ-проекты, которые мы параллельно развиваем. Поверь, мне есть с чем сравнивать. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 18:55 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Алексей КНаоборот. Наплодить рукописного SQL много ума не надо, это все умеют. С дуру ... сам знаешь. Хоть в SQL, хоть в LINQ. SQL он только с виду прост, хотя LINQtoSQL не читабельнее. Дело привычки. Алексей КНаладить разработку типизированных LINQ решений намного сложнее, но оно того стоит. У меня есть старые SQL-проекты, и новые LINQ-проекты, которые мы параллельно развиваем. Поверь, мне есть с чем сравнивать. :-) Я даже не сомневаюсь что тебе есть с чем сравнивать (ИМХУ ты себя неопытного сравниваешь с собой опытным). Сравни инструменты, тот мой топик, твоя фраза "Но я в этом смысла не вижу" 19667066 , ты интуитивно сравниваешь, а у меня есть численный критерий (время выполнения), чувствуешь разницу? Я могу пописать разные варианты одного и того же и посмотреть на фактический результат, а у тебя только один инструмент - интуиция. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:20 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Алексей КТы не напишешь на SQL то, что можно написать на LINQ. И что? Примерчики в студию! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:21 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
MonochromatiqueДля быстрой обработки данных. Зачем еще данные индексируют? Для красоты? Для работы с данными в памяти есть коллекции и словари. Зачем индексировать, ещё раз поинтересуюсь? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:22 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
MonochromatiqueПерегибаешь, хвост. И сравнить можно что угодно с чем угодно, хватало бы "фантазии". Нужно достать данные из БД - встает непростой выбор - а не пописать ли мне raw текст вставного SQL-запроса, или нажать несколько кнопок (linq) и данные уже в памяти. Что выбираем? Почему? Конечно linq и имеено из-за удобства\быстроты и прочего. Скажи нам - почему ТЫ выбираешь LINQ? Лет 5 наверное ещё пройдёт, прежде чем да некоторых дойдёт, что LINQ это не замена SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:24 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima T... а у тебя только один инструмент - интуиция.Ну а как. У меня же доступа к твоей БД нету, чтобы планы и статистику смотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:29 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
hVosttMonochromatiqueДля быстрой обработки данных. Зачем еще данные индексируют? Для красоты? Для работы с данными в памяти есть коллекции и словари. Зачем индексировать, ещё раз поинтересуюсь? словари, т.е. Dictionary<> это и есть сортированные данные, но с оверрхэдом как по памяти так и по времени наполнения. Если данные статичны, то дешевле (по времени и памяти) залить из в массив и отсортировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:29 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
hVosttАлексей КТы не напишешь на SQL то, что можно написать на LINQ. И что? Примерчики в студию!Я не смотрю "Поле чудес". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:30 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima Tсловари, т.е. Dictionary<> это и есть сортированные данные, но с оверрхэдом как по памяти так и по времени наполнения. Если данные статичны, то дешевле (по времени и памяти) залить из в массив и отсортировать.Dictionary<> это хэш-таблица. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:37 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Алексей КDima T... а у тебя только один инструмент - интуиция.Ну а как. У меня же доступа к твоей БД нету, чтобы планы и статистику смотреть. а как план в linq смотреть? Я уже спрашивал выше, никто не ответил. Без обид, я везде в спорных вопросах пишу ИМХУ, т.е. я так думаю, но других так делать не заставляю. Мой опыт - это мой опыт (Visual FoxPro много лет, никаких типов, сплошной raw SQL) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:38 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima TАлексей Кпропущено... Ну а как. У меня же доступа к твоей БД нету, чтобы планы и статистику смотреть. а как план в linq смотреть?Как посмотреть план выполнения SQL-запроса, сгенерированного LINQ? Берём "профайлером" и смотрим, ты же как-то смотрел. Или я не понял вопроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:41 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Алексей КDima Tсловари, т.е. Dictionary<> это и есть сортированные данные, но с оверрхэдом как по памяти так и по времени наполнения. Если данные статичны, то дешевле (по времени и памяти) залить из в массив и отсортировать.Dictionary<> это хэш-таблица. Возможно, но работа с массивами быстрее если они влазят в кэш проца. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:43 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima TБез обид, я везде в спорных вопросах пишу ИМХУ, т.е. я так думаю, но других так делать не заставляю. Мой опыт - это мой опыт (Visual FoxPro много лет, никаких типов, сплошной raw SQL)Зачем мне кого-то тут заставлять? Просто делюсь своим мнением, не более того. Просто не согласен с некоторыми высказываниями, о чём и сообщил. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:45 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
MonochromatiqueСкажи нам - почему ТЫ выбираешь LINQ? Ну вот пример есть, кстати, хороший. Есть у нас проект, где используется параллельно сразу основных 4 базы данных: MS SQL для мета-данных и истории (CQRS), другой MS SQL с read-only генерируемой нормализованной базой для отчётов, MongoDb для хранения кеша бизнес-данных и Lucene для поиска. К бизнес-данным и мета-информации есть доступ с помощью LINQ через слой доменной абстракции (как часть DSL). Единый доступ. Профит от генерации SQL в данном случае составляет лишь 20-30% от силы. Основная мощь в построении слоя бизнес-абстракции. Любое изменение это история. Мы уже обкатывали так называемые путешествия в прошлое, например, можно открыть и посмотреть состояние системы в режиме чтения на определенную дату и время. Можно откатывать отдельные транзакции. Все формочки генерятся. Бизнес-логика пишется вообще на Lua. Профит от LINQ тут колоссальный, так как на нём сидят все прикладные запросы к данным и он протаскивается даже внутрь бизнес-скриптов (политики безопасности, бизнес-валидация, бизнес-события, бизнес-логика). Ну а те, кто видят в LINQ лишь способ спрятаться от написания SQL, то это фейл, что ещё могу сказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:47 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima TАлексей Кпропущено... Dictionary<> это хэш-таблица. Возможно..."К гадалке не ходи" (ц) :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:47 |
|
Сложные SQL запросы на языке LINQ
|
|||
---|---|---|---|
#18+
Dima Tсловари, т.е. Dictionary<> это и есть сортированные данные, но с оверрхэдом как по памяти так и по времени наполнения. Если данные статичны, то дешевле (по времени и памяти) залить из в массив и отсортировать. С какого ляда это они сортированные? Оверхед по сравнению с данными минимален. Для небольших коллекций конечно эффективней остортировать коллекцию, но это вообще фигня, а не оптимизация. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2016, 19:48 |
|
|
start [/forum/topic.php?fid=17&msg=39310593&tid=1349361]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
143ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 269ms |
0 / 0 |