Re[32]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: criosray  
Дата: 30.06.09 17:02
Оценка:
Здравствуйте, iHateLogins, Вы писали:


___>>>И это вобще-то ни мега-запрос, как тут уже сказали, запрос прост... Для тех кто в теме.


E__>>Он может и прост, но выглядит довольно монструозно. А это само по себе плохо. Насколько я понимаю, linq создавался в том числе и для того, чтобы запросы выглядели не столь монстряче.


HL>Может это от того, что вы просто не знаете t-sql?

Нет, это от того, что вы не знаете ничего кроме t-sql (да и t-sql знаете ли Вы t-sql?).

HL>А то можно и про какой-нибудь (условно) итальйнский (испанский, венгерский) язык сказать, что выглядит монстуозно, какие-то буковки непонятные и слова неизвестные.


HL>Те кто в теме запрос понимают за 30 секунд.

А что так долго-то? 30 мс не больше. Подумаешь, запрос на 5 страниц со множеством вложенных подзапросов, на который явно угробили десятки человеко-часов.
Re[37]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Воронков Василий Россия  
Дата: 30.06.09 19:55
Оценка: -2
Здравствуйте, criosray, Вы писали:

Я так понял, что "очень просто сменить СУБД" для вас — это переложить все проблемы на "другого парня", который у вас фигурирует под кличкой "dba". Да, при мало-мальски грамотном дизайне приложение должно быть изолировано от хранилища, и, соответственно, смена последнего не должна приводить к изменению кода приложения. Но каким образом из этого утверждения делается вывод, что сменить СУБД легко?
Явно в проекте с базой на 70 млн. сущностей запросы ОРМ не стоит позволять генерить, и объемы кода в итоге, которые необходимо переносить, немаленькие. А сам апликейшин при нормальном дизайне не должен зависеть от базы, вообще независимо от того, ОРМ у вас там или не ОРМ.
Re[38]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: criosray  
Дата: 30.06.09 20:13
Оценка: -1
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Я так понял, что "очень просто сменить СУБД" для вас — это переложить все проблемы на "другого парня", который у вас фигурирует под кличкой "dba".

Вы ничего не путаете? Вы представляете сколько работы будет у dba, если придется не только схему чуть поправить, но и переписать всю тьму кода с tsql на pl/sql?
Как раз в нашем случае dba получает минимум головной боли, т.к. БД выступает в роли простого хранилища данных, а все бизнес логика в дотнет клиенте.

ВВ>Да, при мало-мальски грамотном дизайне приложение должно быть изолировано от хранилища, и, соответственно, смена последнего не должна приводить к изменению кода приложения. Но каким образом из этого утверждения делается вывод, что сменить СУБД легко?

Вы внимательно читали? Г-н iHateLogins предлагал всю бизнес логику запихнуть в хранимки на tsql или pl/sql, а дотнет клиент использовать в качестве непонятно чего ("прослойка" или как он там выразился...).

ВВ>Явно в проекте с базой на 70 млн. сущностей запросы ОРМ не стоит позволять генерить,

С какой это радости?
ВВ>и объемы кода в итоге, которые необходимо переносить, немаленькие. А сам апликейшин при нормальном дизайне не должен зависеть от базы, вообще независимо от того, ОРМ у вас там или не ОРМ.
Еще раз ЧИТАЙТЕ внимательно.
Re[39]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Воронков Василий Россия  
Дата: 30.06.09 20:29
Оценка: 3 (2) +2 -1
Здравствуйте, criosray, Вы писали:

ВВ>>Я так понял, что "очень просто сменить СУБД" для вас — это переложить все проблемы на "другого парня", который у вас фигурирует под кличкой "dba".

C>Вы ничего не путаете? Вы представляете сколько работы будет у dba, если придется не только схему чуть поправить, но и переписать всю тьму кода с tsql на pl/sql?
C>Как раз в нашем случае dba получает минимум головной боли, т.к. БД выступает в роли простого хранилища данных, а все бизнес логика в дотнет клиенте.

У вас видимо "тьма кода с tsql" ассоциируется исключительно с бизнес-логикой. Сочувствую, ибо это однозначно говорит о качестве ваших проектов.

ВВ>>Явно в проекте с базой на 70 млн. сущностей запросы ОРМ не стоит позволять генерить,

C>С какой это радости?

А, ну вы видимо считаете, что всегда можно довериться тому говну, которое генерит NHibernate, а DBA у вас будет тупо таблички перерисовывать. Такой способ бесспорно рулит, если три человека с приложением работают.
Тут и правда без разницы — Оракл или Сиквел сервер.
Обычно вообще-то переход, скажем, на 10g превращается в масштабный и сложный проект и вовсе не потому, что там "бизнес-логика" в базе.
Re[40]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: criosray  
Дата: 30.06.09 20:38
Оценка: -2
Здравствуйте, Воронков Василий, Вы писали:

ВВ>>>Я так понял, что "очень просто сменить СУБД" для вас — это переложить все проблемы на "другого парня", который у вас фигурирует под кличкой "dba".

C>>Вы ничего не путаете? Вы представляете сколько работы будет у dba, если придется не только схему чуть поправить, но и переписать всю тьму кода с tsql на pl/sql?
C>>Как раз в нашем случае dba получает минимум головной боли, т.к. БД выступает в роли простого хранилища данных, а все бизнес логика в дотнет клиенте.

ВВ>У вас видимо "тьма кода с tsql" ассоциируется исключительно с бизнес-логикой. Сочувствую, ибо это однозначно говорит о качестве ваших проектов.

Скорее это однозначно говорит о Вашем полном непонимании предмета спора.

ВВ>>>Явно в проекте с базой на 70 млн. сущностей запросы ОРМ не стоит позволять генерить,

C>>С какой это радости?

ВВ>А, ну вы видимо считаете, что всегда можно довериться тому говну, которое генерит NHibernate,

Считаете Вы при чем не верно. А я знаю.

ВВ>Обычно вообще-то переход, скажем, на 10g превращается в масштабный и сложный проект и вовсе не потому, что там "бизнес-логика" в базе.

Бизнес логика в базе это одна из основных сложностей перевода проекта с одной СУБД на другую. Вот когда сами попробуете — узнаете.
Re[41]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Воронков Василий Россия  
Дата: 30.06.09 20:47
Оценка: +2 -1
Здравствуйте, criosray, Вы писали:

ВВ>>А, ну вы видимо считаете, что всегда можно довериться тому говну, которое генерит NHibernate,

C>Считаете Вы при чем не верно. А я знаю.

Значит, плохо знаете.

ВВ>>Обычно вообще-то переход, скажем, на 10g превращается в масштабный и сложный проект и вовсе не потому, что там "бизнес-логика" в базе.

C>Бизнес логика в базе это одна из основных сложностей перевода проекта с одной СУБД на другую. Вот когда сами попробуете — узнаете.

Попробую что?
Давай-те как посмотрим ваши посты:
— используем возможности СУБД на 20%
— проблем с производительностью нет
— переходим с Сиквел сервера на Оракл, ибо так хочет клиент
Да, и еще:
— 70 млн сущностей
— генерим запросы с помощью NHibernate
Это вот это я должен попробовать?

И вы все это описываете как хоть какой-то мало-мальски полезный опыт? Вы представляете, сколько лицензия на Оракл стоит? Клиент деньги отмывает? Или клиент — это дядя Ваня, который новый диск на горбушке купил?

Советую вам не судить о сложностях перехода с одной СУБД на другую на основе таких проектов.
Re[38]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.06.09 20:55
Оценка: +1 -1
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Явно в проекте с базой на 70 млн. сущностей запросы ОРМ не стоит позволять генерить

Ага, и писать все на ассемблере.

ВВ>А сам апликейшин при нормальном дизайне не должен зависеть от базы, вообще независимо от того, ОРМ у вас там или не ОРМ.

И достигнуть этого можно двумя способами.
1)Перенести всю BL на SQL, что практически смертельно в случае смены БД, так как придется перекраивать кучу кода.
2)Использовать правильные инструменты для работы с БД, которые позволяют BL абстрагировать от хранилища, тогда и смена БД пройдет гладко.
Re[42]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: criosray  
Дата: 30.06.09 20:56
Оценка: -2 :)
Здравствуйте, Воронков Василий, Вы писали:


ВВ>И вы все это описываете как хоть какой-то мало-мальски полезный опыт? Вы представляете, сколько лицензия на Оракл стоит? Клиент деньги отмывает? Или клиент — это дядя Ваня, который новый диск на горбушке купил?


Вы закончили клоунаду?

Всего хорошего.
Re[39]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Воронков Василий Россия  
Дата: 30.06.09 20:58
Оценка: +1 -3
Здравствуйте, gandjustas, Вы писали:

ВВ>>Явно в проекте с базой на 70 млн. сущностей запросы ОРМ не стоит позволять генерить

G>Ага, и писать все на ассемблере.

Добро пожаловать в реальный мир, здесь иногда приходится писать запросы ручками.

ВВ>>А сам апликейшин при нормальном дизайне не должен зависеть от базы, вообще независимо от того, ОРМ у вас там или не ОРМ.

G>И достигнуть этого можно двумя способами.
G>1)Перенести всю BL на SQL, что практически смертельно в случае смены БД, так как придется перекраивать кучу кода.
G>2)Использовать правильные инструменты для работы с БД, которые позволяют BL абстрагировать от хранилища, тогда и смена БД пройдет гладко.

Для тех в танке повторяю — вынесение BL из БД вовсе не означает "легкости смены СУБД", если, конечно же, речь не идет о хоум-пейджах.
Re[40]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.06.09 22:32
Оценка: +1 -1
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, gandjustas, Вы писали:


ВВ>>>Явно в проекте с базой на 70 млн. сущностей запросы ОРМ не стоит позволять генерить

G>>Ага, и писать все на ассемблере.

ВВ>Добро пожаловать в реальный мир, здесь иногда приходится писать запросы ручками.

Только когда надо использовать возможности, не поддерживаемые высокоуровневыми средствами.

ВВ>>>А сам апликейшин при нормальном дизайне не должен зависеть от базы, вообще независимо от того, ОРМ у вас там или не ОРМ.

G>>И достигнуть этого можно двумя способами.
G>>1)Перенести всю BL на SQL, что практически смертельно в случае смены БД, так как придется перекраивать кучу кода.
G>>2)Использовать правильные инструменты для работы с БД, которые позволяют BL абстрагировать от хранилища, тогда и смена БД пройдет гладко.

ВВ>Для тех в танке повторяю — вынесение BL из БД вовсе не означает "легкости смены СУБД", если, конечно же, речь не идет о хоум-пейджах.

Еще раз: главное абстрагировать BL от хранилища.
Re[40]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.06.09 23:07
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Обычно вообще-то переход, скажем, на 10g превращается в масштабный и сложный проект и вовсе не потому, что там "бизнес-логика" в базе.


Поясни.
Re[32]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.06.09 23:17
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>СУБД — да это определяется сразу. А вот перекидывать с одной СУБД на другую — тот еще гемор — заказчик посылается в лес.


Интересный подход однако, посылать заказчика. Жалко в ЖКХ где работает мой отец, об этом не знали. А то MSSQL выдохся и перешли на Оракл.
Re[40]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.06.09 23:17
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

G>>И достигнуть этого можно двумя способами.

G>>1)Перенести всю BL на SQL, что практически смертельно в случае смены БД, так как придется перекраивать кучу кода.
G>>2)Использовать правильные инструменты для работы с БД, которые позволяют BL абстрагировать от хранилища, тогда и смена БД пройдет гладко.

ВВ>Для тех в танке повторяю — вынесение BL из БД вовсе не означает "легкости смены СУБД", если, конечно же, речь не идет о хоум-пейджах.


Не спорь с ним, он сикп освоил
Re[41]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: criosray  
Дата: 30.06.09 23:30
Оценка: :)
Здравствуйте, Ikemefula, Вы писали:


ВВ>>Для тех в танке повторяю — вынесение BL из БД вовсе не означает "легкости смены СУБД", если, конечно же, речь не идет о хоум-пейджах.


I>Не спорь с ним, он сикп освоил


При чем, что очень похоже, по уровню достаточном только для "хоум пейдж"...
Re[19]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: iHateLogins  
Дата: 01.07.09 00:09
Оценка:
Здравствуйте, criosray, Вы писали:


HL>>>>И уж поверьте, сервер не лезет в таблицы с метаданными для одинаковых запросов, там всё довольно хорошо кэшируется.

C>>>За каждый промах кеша Вам придется платить. Вот и все.

HL>>Какой промах? План для "select *" ляжет в кэш планов и будет использован для всех аналогичных запросов. После этого Metadata lookup-а не будет.

C>До того, как он ляжет в кеш планов и случится промах. Кроме того, кеш планов имеет такое ствойство как expiration date.

Промах случится для любого запроса, которого нет в кэше, будь это "select *" или "select список полей"

HL>>Даже для запросов, для которых плана нет, разница в "select *" и "select список полей" практически отсутствует, потому что и там и там будет просмотр метаданных и кучи еще чего.

C>Продолжайте в это верить. А лучше почитайте статьи и не пишите больше глупостей.

Какой верить? Я вам привёл стоимость запросов, посчитанную самими SQL Server-ом. Она одинакова. Вы об этом не знали. Что еще доказывать?

C>Например, это http://charlesconradvaz.wordpress.com/2005/07/29/simple-sql-server-performance-tips-2/


Avoid SELECT * ==> leads to table scan,


Дальше читать не стал, бредом не увлекаюсь. Надеюсь вам не нужно доказывать, что это бред и в очередной раз приводить стоимость запросов с "select *", которые не приводят к table scan-у?
Re[33]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: iHateLogins  
Дата: 01.07.09 00:12
Оценка: -2
Здравствуйте, criosray, Вы писали:

___>>>>И это вобще-то ни мега-запрос, как тут уже сказали, запрос прост... Для тех кто в теме.


E__>>>Он может и прост, но выглядит довольно монструозно. А это само по себе плохо. Насколько я понимаю, linq создавался в том числе и для того, чтобы запросы выглядели не столь монстряче.


HL>>Может это от того, что вы просто не знаете t-sql?

C>Нет, это от того, что вы не знаете ничего кроме t-sql (да и t-sql знаете ли Вы t-sql?).

Я вообще-то программирую на C# уже 8 лет, более того, сейчас занимаюсь этим в буржуинии (где всё-таки уровень повыше, чем в России).

HL>>А то можно и про какой-нибудь (условно) итальйнский (испанский, венгерский) язык сказать, что выглядит монстуозно, какие-то буковки непонятные и слова неизвестные.


HL>>Те кто в теме запрос понимают за 30 секунд.

C>А что так долго-то? 30 мс не больше. Подумаешь, запрос на 5 страниц со множеством вложенных подзапросов, на который явно угробили десятки человеко-часов.

Десятки?
Re[23]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Ночной Смотрящий Россия  
Дата: 01.07.09 00:17
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>Только плюс линку. Но заниматься преждевременной оптимизацией — "красивый рукопашный скрипт" — зло. Запросы надо писать так, как-будто ничего не знаешь про работу движка СУБД.


Ага. И с линком это получается намного лучше.

___>Классно. Но это хак. Оптимизатор СУБД должен этим заниматься.


Не, ну ты можешь конечно ждать, когда оптимизатор станет идеальным. Лично я предпочитаю смотреть на то, что есть в наличии.

___>PS: Речь изначально шла не об этом. Сначала gandjustas ляпнул ерунду (или коряво выразился), которую всем понять было только как: кэширование и индексы работают только для линк-запросов.


Ну, касательно ляпанья gandjustas все вопросы к нему, он много тут такой пурги несет, что одной больше, одной меньше ...
Re[13]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Ночной Смотрящий Россия  
Дата: 01.07.09 00:17
Оценка:
Здравствуйте, yuriylsh, Вы писали:

Y>Я отвечал на вполне конкретное заявление и iHateLogins вполне однозначно сказал то что сказал. Там не было ничего ни про массовые колличества ни про всегда плохо.


А давай мы не будем пытаться превратно трактовать, а прямо у него спросим — считает ли iHateLogins, что юнит-тесты это всегда плохо?
Re[15]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Ночной Смотрящий Россия  
Дата: 01.07.09 00:17
Оценка:
Здравствуйте, March_rabbit, Вы писали:

НС>>Любимый аргумент религиозных фанатиков.

M_>начники пишут также, справедливости ради уточню

Кто, простите?
Re[5]: Юнит-тесты: пожалуй, лучше в "О жизни"
От: Ночной Смотрящий Россия  
Дата: 01.07.09 00:17
Оценка:
Здравствуйте, landerhigh, Вы писали:

НС>>А мой — уменьшается в два раза. Мое имхо против твоего имха?

L>Референсы будут? У меня — без проблем.

Пока что никаких референсов от тебя не видно, одни имхи.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.