|
|
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
funikovyuri М.ГоловановЧитается только то, что уже есть в таблицах. Это, если говорить мягко, неправда... То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи? funikovyuriХм... Иногда лучше жевать.... Вот именно. SQL транзакции позволяют беззаботно жевать. Был у меня знакомый программист... всегда писал так: Код: plaintext 1. 2. и спокойно жевал. Все железно и по правилам. А не тянет - берем сервак покруче... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 19:38:03 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи? Вы б почитали про уровни изоляции чтоли... автори спокойно жевал. Все железно и по правилам. А не тянет - берем сервак покруче... Не совсем понял зачем в приведенном примере begin tran/commit, но так или иначе искренне советую перестать пороть чушь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 19:45:01 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
М.Голованов То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи? Я бы вам посоветовал вначале прочитать теорию БД. Что такое "грязное чтение" (вы, как я понимаю, работаете именно так) и к чему оно приводит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 19:50:03 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
вот и докатились до аналогов FireBird ) Эй, "хуже татарина" - ну что я говорил? Уже пошли разговоры про то, как база свои данные обновляет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 20:40:52 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
хуже татарина Стало интересно, что такое "статические XML-контейнеры". Я не так долго работаю с Java, поэтому наверное не слышал о таком. Просветите? Ну не знаю я - туповат наверно. Для меня это - описание таблиц (которое хранится в трогательном XML), к которым предполагается применить SQL. Для дальнейшего изменения данных. А Вы разве не работали с Hibernate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 20:47:12 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
Ух_Ты хуже татарина Стало интересно, что такое "статические XML-контейнеры". Я не так долго работаю с Java, поэтому наверное не слышал о таком. Просветите? Ну не знаю я - туповат наверно. Для меня это - описание таблиц (которое хранится в трогательном XML), к которым предполагается применить SQL. Для дальнейшего изменения данных. А Вы разве не работали с Hibernate? зато вы с ним уж точно не работали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 21:09:25 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
насколько я понял вы с хибернейтом не очень. Не засоряйте топик. Либо поделитесь решением вопросов производительности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 23:19:10 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
funikovyuri То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи? Вы б почитали про уровни изоляции чтоли... А как уровни изоляции применимы к ISAM базе данных? Вы бы про ISAM почитали, что ли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 23:48:41 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
ррмяф М.Голованов То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи? Я бы вам посоветовал вначале прочитать теорию БД. Что такое "грязное чтение" (вы, как я понимаю, работаете именно так) и к чему оно приводит. Вам тоже посоветую почитать оную теорию. Узнать, что такое ISAM... Или Вы только по SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 23:49:54 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
funikovyuriНе совсем понял зачем в приведенном примере begin tran/commit, но так или иначе искренне советую перестать пороть чушь Я вот тоже не совсем понял, зачем он так писал. И искренне выгнал его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 23:51:02 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
1024насколько я понял вы с хибернейтом не очень. Не засоряйте топик. Либо поделитесь решением вопросов производительности ... сначала почитав соответствующий раздел в документации: 19. Improving performance Кроме того, по ссылке http://www.hibernate.org/?cmd=srchdoc&q=performance можно найти приличный набор заметок по этому вопросу. Правда, там все с основном о тюнинге. Принципиальный же ответ дан выше: не устраивает Hibernate - переходите на непосредственный JDBC и хранимые процедуры. За счет времени, потраченного на соответствующее кодирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 00:09:42 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
Мои 5 копеек 1. Hibernate подоходит для проектов в которых есть хорошо формализованная модель предметной области. Если нормальной модели нет, то делать в проекте Hibernate нечего 2. Проект с использованием Hibernate должен работать не медленее, чем аналогичный, но без использования Hibernate, поскольку: 2.1 У Hibernate есть свой собственный кэш, которым можно и нужно пользоваться 2.2 Hibernate не запрещает использовать обычные SQL запросы и специфические возможность СУБД там, где это действительно нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 09:41:19 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
2М.Голованов с просьбой меньше трындеть я обращался не к вам, у вас вполне виден опыт работы и варианты решения возникающих проблем. Я обращался к тем балаболкам которые то не понимают что такое большой проект то про связь ооп с хмл начинают флудить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 09:45:28 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
М.Голованов funikovyuri То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи? Вы б почитали про уровни изоляции чтоли... А как уровни изоляции применимы к ISAM базе данных? Вы бы про ISAM почитали, что ли... Чего там читать! Indexed Sequential Access Method базовый метод для большинства СУБД и не только :) Это низкоуровневый механизм, в терминах ANSI SQL соответствует read uncommited. Уровни изоляции ANSI, которые как вы считаете неприменимы к ISAM DB, это просто один из способов классификации режимов согласованной параллельной обработки данных, основанный на упорядочивании по убыванию количества аномалий этой самой параллельной обработки. Нужно книги читать, умные, а не только документацию к MySQL PS не это провокация, честное слово :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 10:02:45 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
М.Голованов funikovyuriНе совсем понял зачем в приведенном примере begin tran/commit, но так или иначе искренне советую перестать пороть чушь Я вот тоже не совсем понял, зачем он так писал. И искренне выгнал его. BTW эти операторы Begin Tran/Commit там погоды не делают - ни плохо ни хорошо от них не будет, одно выражение SQL и так всегда выполняется в одной транзакции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 10:04:29 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
М.Голованов ..... BEGIN TRANSACTION SELECT bla bla COMMIT ..... и спокойно жевал. Все железно и по правилам. А не тянет - берем сервак покруче... А такая конструкция очень полезна BEGIN TRANSACTION SELECT bla bla SELECT bla1 bla1 SELECT ... COMMIT если вы знаете,что такой транзакция на чтение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 10:34:14 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
М.Голованов funikovyuri М.ГоловановЧитается только то, что уже есть в таблицах. Это, если говорить мягко, неправда... То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи? funikovyuriХм... Иногда лучше жевать.... Вот именно. SQL транзакции позволяют беззаботно жевать. Был у меня знакомый программист... всегда писал так: Код: plaintext 1. 2. и спокойно жевал. Все железно и по правилам. А не тянет - берем сервак покруче... Мне страшно подумать,если ваша разработка связана с финансами,с бухгалтерией. Страшно подумать,что может произойти с денюжками,если использовать такой подход в финансовых/банковских системах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 11:13:31 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
М.Голованов 1024гугл для поисковых индексов использует MySQL например. Микрософт вполне вероятно MS SQL Трудно сказать, что они используют. Я в проектах, использующих Hibernate, всегда стараюсь использовать MyISAM таблицы MySQL. Поскольку они без транзакций, работают очень быстро. А транзакции (если вообще нужна двухфазная фиксация) и ссылочная целостность поддерживаются на уровне Hibernate / прикладного кода - там, где это надо. Опять имею разумный баланс производительности и функциональности. Вообще спор пошел на уровне "а у нас в квартире газ, а у вас?". Нет никакой абсолютной истины. Есть разумные решения в конкретных ситуациях, причем это решения, использующие все известные возможности плюс интуицию / анализ / сопрставление / комбинирование. Решения, основанные на соображениях "все делают это так" или "мне аказали, что надо делать так", в программировании редко бывают разумными. Хорошо, если вообще работающими. Ссори, по проблеме в финансовых системах корректнее процитировать это. .... Мне страшно подумать,если ваша разработка связана с финансами,с бухгалтерией. Страшно подумать,что может произойти с денюжками,если использовать такой подход в финансовых/банковских системах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 11:15:48 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
cooluserМои 5 копеек 2. Проект с использованием Hibernate должен работать не медленее, чем аналогичный, но без использования Hibernate, поскольку: 2.1 У Hibernate есть свой собственный кэш, которым можно и нужно пользоваться 2.2 Hibernate не запрещает использовать обычные SQL запросы и специфические возможность СУБД там, где это действительно нужно Второе утверждение верно без оговорок. Первое утверждение верно только при определенных условиях: а) в течение некоторого времени работы приложения доступ к записи осуществляется многократно, б) запись в течение этого времени может обновляться. В этом и только в этом случае имеет смысл держать запись в памяти (кэш - это по сути копия части содержимого БД) с выигрышем в производительности. Записи, читаемые эпизодически, держать в памяти смысла нет - мало того, что есть более быстрые способы один раз массово прочитать такие записи, так они еще будут выталкивать из кэша записи, которые там действительно имеет смысл держать (память-то не безразмерна). То же самое в точности верно для EJB 1..2 контейнеров. Поэтому когда мы писали приложения под такие контейнеры (типа WebLogic и Orion), мы всегда использовали два класса объектов, с которыми работали session beans: а) entity beans - кэшируемые записи - для текущей обработки и б) query engine (класс, поставляющий записи через JDBC и хранимые процедуры) - для исторических данных. Все летало. Hibernate позволяет в принципе до JDBC не опускаться и обойтись HQL - однако с некоторыми накладными расходами. Поэтому для исторических данных я всегда пользуюсь JDBC - как я и писал выше. Короче, если руководствоваться здравым смыслом и не заставлять Hibernate работать с записями, с которыми она работать не должна, проблем с производительностью она не доставит. Однако здравый смысл - вещь редкая... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 11:22:11 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
М.Голованов Второе утверждение верно без оговорок. Первое утверждение верно только при определенных условиях: а) в течение некоторого времени работы приложения доступ к записи осуществляется многократно, б) запись в течение этого времени может обновляться. Да понятно что кэшем надо пользоваться разумно. Я просто привел факт - кэш есть, если пользоваться разумно будет хорошо. Разумность у каждого проекта своя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 14:06:13 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
dremmmmmЕсли нормализовать БД к 3 форме, и все таблицы описать в Hibernate, то это "вешалка". Наверно из-за нормализации тормазит, т.к. БД "рисуют" Java-программисты, а не БД-деволоперы. (спасибо Hibernate , о БД думать не надо). Странное высказывание, судя по моему опыту на hibernate вполне можно сделать ранее спланированную структуру БД с нужными индексами внешними ключами и т.д. Да и запросы вполне можно подкорректировать, к нужному виду. Что касается тормозов, то надо выделить конкректное узкое место, в логах посмотреть что за SQL запросы он генерит, проанализировать планы выполнения запросов. Процентов на 99 могу сказать, что проблема не в Hibernate, а в конкретном "бутылочном горлышке", возможно неправильном проектировании базы данных или неучитывании того, как работает СУБД. Как ни странно, но оказывается, что перемена мест слагаемых применительно к базам данных может играть большую роль. Покрутив запросы порой можно существенно поднять производительность. Как вариант, временно перенастроить соединение на Oracle (думаю тут все будет работать по аналогии) и потестить прогу специализированными приблудами, например как я писал несколько лет назад в статье много лет использую данную методологию для поиска этих самых бутылочных горлышек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 00:16:39 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
Ух_Ты вот и докатились до аналогов FireBird ) Эй, "хуже татарина" - ну что я говорил? Уже пошли разговоры про то, как база свои данные обновляет... Хм. Ну Firebird и Firebid. Чего вы так к птичке неровно дышите? Всякому овощу - свое время. У нас вот для развертываний системы с небольшим количеством данных используется FB, а когда данных много или у заказчика особые требовария - Oracle. Часть системы вообще использует специализированую нереляционную БД (ближайший популярный аналог - BerkleyDB, только та, что используем мы, поудобнее для наших задач). Я наверное по вашей логике должен со стыда сгореть за это. Это ведь не Oracle и не MS SQL Server. Но свои нехитрые задачи (словарный поиск по простым критериям, быстрая вставка/обновление) эта недо-СУБД решает значительно более производительно, чем "взрослые" СУБД. Так и MySQL, для каких-то задач оптимальна. Ух_Ты хуже татарина Стало интересно, что такое "статические XML-контейнеры". Я не так долго работаю с Java, поэтому наверное не слышал о таком. Просветите? Ну не знаю я - туповат наверно. Для меня это - описание таблиц (которое хранится в трогательном XML), к которым предполагается применить SQL. Для дальнейшего изменения данных. А Вы разве не работали с Hibernate? Да, я использовал и использую Hibernate 2/3. Насчет вопроса, я тогда правда не понял, что такое эти "статические контейнеры" . Теперь мне понятно, что вы так файлы конфигурации H. называете ("маппинги"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 01:04:29 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
Siarhei Berdachuk Процентов на 99 могу сказать, что проблема не в Hibernate, а в конкретном "бутылочном горлышке", возможно неправильном проектировании базы данных или неучитывании того, как работает СУБД. +1. Если что-то тормозит, надо измерять производительность. Инженерный подход к разработке ПО рулит. Когда что-то тормозит, надо узнать, что тормозит, и как правило проблему можно решить, это путь инженера, а можно заявить, что конкретно вот из-за Hibernate все беды и надо её выкинуть и все заработает. Это может сработать иногда, но подход отдает шаманством. Есть хорошие профайлеры для Java и средства измерения производительности SQL запросов. В Hibernate всегда можно включить вывод SQL, отправляемого в СУБД в лог. Можно смотреть планы выполнения, и, если что не так, лечить. Забыть SQL и принципы оптимизации запросов к БД, используя Hibernate не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 01:14:15 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
Siarhei Berdachuk.... Что касается тормозов, то надо выделить конкректное узкое место, в логах посмотреть что за SQL запросы он генерит, проанализировать планы выполнения запросов. .... . А какой смысл тогда использовать hibernate,если все равно надо лезть и анализировать запросы,который он генерит(наверняка еще целую кучу ненужных запросов) и затем их оптимизировать сложным образом настраивая hibernate, что бы ОН ВЫДАЛ нормальный запрос. Все проще написать сразу самому нормальный запрос SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 10:40:44 |
|
||
|
Кто использует Hibernate в БОЛЬШИХ проекта
|
|||
|---|---|---|---|
|
#18+
Java - devА какой смысл тогда использовать hibernate,если все равно надо лезть и анализировать запросы,который он генерит(наверняка еще целую кучу ненужных запросов) и затем их оптимизировать сложным образом настраивая hibernate, что бы ОН ВЫДАЛ нормальный запрос. Все проще написать сразу самому нормальный запрос SQL. Hibernate, как дополнительный уровень абстракции, не может знать всех нюансов использования конкретной СУБД. И это разумная плата за универсальность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 11:09:18 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34159009&tid=2147367]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
193ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 449ms |

| 0 / 0 |
