|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchА если я в этом инструменте сначала вызову метод Where а потом Join? он переместит строку Join выше условия? а если я с головой не дружу, компьютер мне поможет? :) в linq ты не можешь случайно переставлять все подряд местами, иначе получится что из базы выходит все, а фильтрует приложение. LelouchПрям одно и тоже, особенно с типизацией и возможностью обработки noSQL (для EF достаточно найти провайдера. а для этой библиотеки что?) Я уже писал выше свое отношение к смене сервера, нужно следить за дискуссией. Так что если нужен nosql, я буду сразу на нем писать. Кстати mybatis поддерживает только sql, впрочем как и linq to sql. В EF могу, генерация SQL не зависит от построения LINQ запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:27 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыЛюбой публичный сервис, задача которого — обрабатывать выборки хотя-бы со скоростью пару десятков тысяч запросов в секунду по базе размером, ну пусть от 50гигабайт, уже лучше давно пора начать избавлять от хибернейта и прочих монстров Если у вас 20к запросов в секунду - то NHibernate не самая большая ваша проблема. :) Ни один сервер БД не выдержит такой нагрузки. Это один фиг распределённая система, никакой ACID там и в помине не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:30 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorзыЛюбой публичный сервис, задача которого — обрабатывать выборки хотя-бы со скоростью пару десятков тысяч запросов в секунду по базе размером, ну пусть от 50гигабайт, уже лучше давно пора начать избавлять от хибернейта и прочих монстров Если у вас 20к запросов в секунду - то NHibernate не самая большая ваша проблема. :) Ни один сервер БД не выдержит такой нагрузки. Это один фиг распределённая система, никакой ACID там и в помине не будет. да ладно ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:32 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
EnomayДругое дело когда мы начинаем примазывать тут использование хранмых процедур. Тут уже отследить где какая выборка, становится сложнее. Хранимые могут вызываться другими хранимыми и так далее. Проблема в том, что DAL слой с ORM при поддержке современных IDE очень легко поддерживать, рефакторить. Что, использование ORM уже запрещает использование хранимок? Не использование ORM говорит о том, что все написано на хранимках? Что за стереотипы. Enomayопять же, это будет тестируемо и как минимум будет содержать значительно меньше синтаксических ошибок, в силу строгой типизации. чтобы что-то было тестируемо, нужно заложить это в архитектуру. Три буквы в аббревиатуре не делают из говна конфетку. А поскольку тестировать можно много чего, будем считать что синтаксические ошибки тоже тестируемы, я выше уже писал МСУ, иногда нужно чем-то жертвовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:34 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, 1. чистой воды хардкод 2. Датаадаптер так и работает в принципе 3. когда я писал дженерик код через alter на коболе ты под стол пешком ходила ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:34 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchОтвет на ваш вопрос про поле по названию: превосходно, но это же вставка чистого SQL без проверок в compile time :) не нужно себе противоречить, и раз уж допускаешь исключения, то допускай их везде, в том числе на самом высоком уровне — в подходе. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:35 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зы я выше уже писал МСУ, иногда нужно чем-то жертвовать. лучше МСУ и другими кодерами ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:36 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchВ EF могу, генерация SQL не зависит от построения LINQ запроса. и даже groupby можно куда угодно всунуть? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:38 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorЕсли у вас 20к запросов в секунду - то NHibernate не самая большая ваша проблема. :) Ни один сервер БД не выдержит такой нагрузки. Это один фиг распределённая система, никакой ACID там и в помине не будет. да ладно, вот тут 11861435 ребята и 750k выжимали ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouch, 1. чистой воды хардкод 2. Датаадаптер так и работает в принципе 3. когда я писал дженерик код через alter на коболе ты под стол пешком ходила Во-первых, я мужского пола - не "дружочек" или как вы там меня назвали я вам просто по причине того, что для начала мы не знакомы. Во-вторых, удачи и дальнейшего удовольствия общения с чудо-платформой випрос, позволяющей строить только 2х-звенные решения только на WinForms. Интересно, а то что МС вот уже как лет 5 от их разработки отказалась вас не смутило? В-третьих, приведите, наконец, пример работы с Вашими метаданными, чтобы мы пали ниц перед пример НЕ хардкода.) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, 1. аааа, извини, не въехал, дмуал раз не друг, то подруга (ну не враг же) 2. випрос тут не при чем, просто я пытаюсь сказать что КЛАСС в коде = ХАРДКОД проблемной области, что = Монументальная прога, мертворожденная и предлагаю конфигурировать класс(метаданные) вне кода, а в коде только интерпретировать. 3. счас я к удовльствию некоторых дома (я гастарбайтер в москоу, но живу в орле) и випрос тут принципиально не установлена вот приеду где то в >20 числа и если не забудешь то покажу, как строятся метаданные, как генерируются персистентные и виртуальные типы, как интерпретируется и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:48 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchВ EF могу, генерация SQL не зависит от построения LINQ запроса. и даже groupby можно куда угодно всунуть? ;) После groupby доступен только ключ в дальнейших запросах) Но, да, можно. Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
мы кажется отвлеклись от сути. давайте опишем проблему и её, так сказать, оптимальные решения. поставим задачу и попытаемся её решить. а там посмотрим, что оптимальнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
мс ни от чего не отказался мс решает свои внутренные проблемы, то ей нужен что то типа линк, то дженерики ТОЛЬКО для коллекций, то ОРМ для М, то ТПЛ для ХНА и т.д. и она всю эту побочную фигню пуляет в мсдн а кодеры жрут ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:51 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зынет, упаси меня от olap и кубов. Фигасе. А ну-ка расскажи, как ты по большим объемам отчеты снимаешь? По боевой базе? Или с большими объемами не работаешь? зыкстати напиши мне без стороннего кода условие where с поиском по названию поля, переданному как аргумент, на linq да ладно, можешь не писать, суть надеюсь понял. Задача стара как боян и существует с момента появления самого linq, и вроде как самой библиотекой она так и осталась нерешенной. Что за детский сад, зы? DLINQ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:53 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, про то и ратуем, но это не столбовая дорога мс, а просто пример ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:59 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Enomayмы кажется отвлеклись от сути. давайте опишем проблему и её, так сказать, оптимальные решения. поставим задачу и попытаемся её решить. а там посмотрим, что оптимальнее. проблема простая, я считаю, что вот это хардкод и что никакой гарнитии нет,что это фиговина будет работать, хотя и прокомпилируется Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:02 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosEnomayмы кажется отвлеклись от сути. давайте опишем проблему и её, так сказать, оптимальные решения. поставим задачу и попытаемся её решить. а там посмотрим, что оптимальнее. проблема простая, я считаю, что вот это хардкод и что никакой гарнитии нет,что это фиговина будет работать, хотя и прокомпилируется Код: c# 1. 2. 3. 4. 5.
Поверьте, я проверил. Будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:03 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, пусть и он проверит :) неужто не доходит простая мысль? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:05 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зайди в БД и замени key на GUID и попробуй запусти еще раз компиляцию? есть ошибки? теперь запусти есть ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:07 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosзайди в БД и замени key на GUID и попробуй запусти еще раз компиляцию? есть ошибки? теперь запусти есть ошибки? 1. Если обновить модель то будет ошибка) а L2S по-моему даже вылетит на создании контекста. 2. Key это поле после group by, его нет в таблице если что. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыда ладно, вот тут 11861435 ребята и 750k выжимали Хм. Они конечно пошли дальше... Они отказались от SQL и много чего еще... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:12 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыбольшинство проектов, о которых я знаю, либо никогда не меняли базу, либо делали это исключительно ради оптимизации (например, переход с sql на nosql). Речь не о "случайном" изменении базы, а о подобной возможности. Я учавствовал в проектах, в которых заложена поддержка различных БД (Oracle, MS SQL). И это круто. Как будешь решать такую задачу, дублировать дата-слой под каждую БД? зыНельзя тупо поменять базу, ничего не поменять в коде и получить +500% в скорости. Можно. И скорость тут не причем. зыТак что ИМХО смена базы — проблема и, соответственно, выгода, сильно надуманы. Это реальность, зы, с которой ты просто не сталкивался. зыДа, ты сейчас скажешь что ORM позволит оставить бОльшую часть кода как есть, но тот же переход sql->nosql требует заодно и смены подхода к работе с данными. И это тоже. SQL vs NOSQL - разные подходы, сомневаюсь, что такой переход возможен. Давай возьмем лучше Oracle и MSSQL, самые распространенные корпоративные сервера. Переход безболезненный. Без ORM это практически невозможно. зыА количество кода, которое необходимо будет переписать, зависит не от факта использования ORM, а от наличия первоначальной абстракции DAL и BL. Абстракция изначально заложена в движок ORM. Наличие провайдера даст возможность генерировать "свой" SQL. Вот и вся абстракция. По кол-ву таких абстракций (кол-во поддерживаемых СУБД) хибер - лидер. зыВ хибере очень много всего, что нужно настроить, чтобы заработало. Более высокий порог вхождения. Та я тебя умоляю, проще пареной репы :) Посложнее, конечно, чем L2S, но не до базрассудства. зыА если внезапно начнет глючить в неумелых руках, то ошибки можно искать долго и упорно. Зы, не аргумент. Неумелым рукам и мороженое противопоказано, подавится и умрет. зыОсобенно коварны транзакции и кэш. В некоторых случаях кэш вообще нафиг не нужен, а он есть. Зы, ну вот что ты фантазируешь, а? ;) зыА если несколько серверов — появляется ещё и проблема репликации кэша. Ты имеешь ввиду, если несколько нод в кластере. Так вот пишется либо свой балансировщик, либо вынос кеша на слой БД. Второе проще. Это как встроенная возможность хранения ASP.NET сессии в БД для такой кластерной архитектуры. Ничего сложного. зыЯ не говорю что это отмазки ламеров чтобы не использовать. Пожалуйста, если это все нужно и умеешь работать. Но если нет — то хибер крайне избыточен и потери CPU внутри на все перделки при большой нагрузке становятся сильно заметны. Если не умеешь водить - не садись, мне не нравятся такие аргументы. Хибер не сложен, верь мне. зыНапример, мне нужно делать выборки актуальных данных по вроде бы простым динамическим критериям. Нужно делать очень быстро, много и на большом объеме данных. Хибер не в состоянии это закэшировать, просто нет таких алгоритмов. Он хорошо справляется с поиском по ключу, но сложнее — проходит мимо. Лучше взять инструмент проще и эффективнее, например mybatis, и получить то, что мне нужно, сразу и без танцев. На больших наборах только OLAP поможет. Для поиска - полнотекст. Другого не дано. Какие размеры для тебя большие? Для меня - несколько терабайт (разумеется, никаких блобов). зыНу ты уж определись, тебе чтобы код быстрее писать, или чтобы написанный код быстрее работал. Иногда приходится чем-то жертвовать. В том-то и дело, что то и другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:15 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosмс ни от чего не отказался мс решает свои внутренные проблемы, то ей нужен что то типа линк, то дженерики ТОЛЬКО для коллекций, то ОРМ для М, то ТПЛ для ХНА и т.д. и она всю эту побочную фигню пуляет в мсдн а кодеры жрут ты для чего эту бессмысленную фигню тут написал? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:21 |
|
|
start [/forum/topic.php?fid=17&msg=37606035&tid=1350478]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 476ms |
0 / 0 |