powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Кто использует Hibernate в БОЛЬШИХ проекта
25 сообщений из 130, страница 5 из 6
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159009
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri М.ГоловановЧитается только то, что уже есть в таблицах.

Это, если говорить мягко, неправда...


То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи?

funikovyuriХм... Иногда лучше жевать....

Вот именно. SQL транзакции позволяют беззаботно жевать. Был у меня знакомый программист... всегда писал так:

Код: plaintext
1.
2.
BEGIN TRANSACTION
SELECT bla bla
COMMIT

и спокойно жевал. Все железно и по правилам. А не тянет - берем сервак покруче...
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159021
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи?

Вы б почитали про уровни изоляции чтоли...

автори спокойно жевал. Все железно и по правилам. А не тянет - берем сервак покруче...

Не совсем понял зачем в приведенном примере begin tran/commit, но так или иначе искренне советую перестать пороть чушь
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159030
Фотография ррмяф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М.Голованов
То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи?

Я бы вам посоветовал вначале прочитать теорию БД.
Что такое "грязное чтение" (вы, как я понимаю, работаете именно так) и к чему оно приводит.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159105
Ух_Ты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот и докатились до аналогов FireBird )
Эй, "хуже татарина" - ну что я говорил? Уже пошли разговоры про то, как база свои данные обновляет...
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159114
Ух_Ты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хуже татарина
Стало интересно, что такое "статические XML-контейнеры". Я не так долго работаю с Java,
поэтому наверное не слышал о таком. Просветите?

Ну не знаю я - туповат наверно. Для меня это - описание таблиц (которое хранится в трогательном XML), к которым предполагается применить SQL. Для дальнейшего изменения данных. А Вы разве не работали с Hibernate?
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159144
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ух_Ты хуже татарина
Стало интересно, что такое "статические XML-контейнеры". Я не так долго работаю с Java,
поэтому наверное не слышал о таком. Просветите?

Ну не знаю я - туповат наверно. Для меня это - описание таблиц (которое хранится в трогательном XML), к которым предполагается применить SQL. Для дальнейшего изменения данных. А Вы разве не работали с Hibernate?

зато вы с ним уж точно не работали
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159287
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я понял вы с хибернейтом не очень. Не засоряйте топик. Либо поделитесь решением вопросов производительности
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159319
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи?

Вы б почитали про уровни изоляции чтоли...


А как уровни изоляции применимы к ISAM базе данных? Вы бы про ISAM почитали, что ли...
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159321
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ррмяф М.Голованов
То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи?

Я бы вам посоветовал вначале прочитать теорию БД.
Что такое "грязное чтение" (вы, как я понимаю, работаете именно так) и к чему оно приводит.

Вам тоже посоветую почитать оную теорию. Узнать, что такое ISAM... Или Вы только по SQL?
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159323
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriНе совсем понял зачем в приведенном примере begin tran/commit, но так или иначе искренне советую перестать пороть чушь

Я вот тоже не совсем понял, зачем он так писал. И искренне выгнал его.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159345
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024насколько я понял вы с хибернейтом не очень. Не засоряйте топик. Либо поделитесь решением вопросов производительности

... сначала почитав соответствующий раздел в документации:

19. Improving performance

Кроме того, по ссылке

http://www.hibernate.org/?cmd=srchdoc&q=performance

можно найти приличный набор заметок по этому вопросу. Правда, там все с основном о тюнинге. Принципиальный же ответ дан выше: не устраивает Hibernate - переходите на непосредственный JDBC и хранимые процедуры. За счет времени, потраченного на соответствующее кодирование.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159675
cooluser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мои 5 копеек

1. Hibernate подоходит для проектов в которых есть хорошо формализованная модель предметной области. Если нормальной модели нет, то делать в проекте Hibernate нечего
2. Проект с использованием Hibernate должен работать не медленее, чем аналогичный, но без использования Hibernate, поскольку:
2.1 У Hibernate есть свой собственный кэш, которым можно и нужно пользоваться
2.2 Hibernate не запрещает использовать обычные SQL запросы и специфические возможность СУБД там, где это действительно нужно
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159686
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2М.Голованов

с просьбой меньше трындеть я обращался не к вам, у вас вполне виден опыт работы и варианты решения возникающих проблем. Я обращался к тем балаболкам которые то не понимают что такое большой проект то про связь ооп с хмл начинают флудить.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159730
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М.Голованов funikovyuri То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи?

Вы б почитали про уровни изоляции чтоли...


А как уровни изоляции применимы к ISAM базе данных? Вы бы про ISAM почитали, что ли...

Чего там читать! Indexed Sequential Access Method базовый метод для большинства СУБД и не только :) Это низкоуровневый механизм, в терминах ANSI SQL соответствует read uncommited. Уровни изоляции ANSI, которые как вы считаете неприменимы к ISAM DB, это просто один из способов классификации режимов согласованной параллельной обработки данных, основанный на упорядочивании по убыванию количества аномалий этой самой параллельной обработки. Нужно книги читать, умные, а не только документацию к MySQL

PS не это провокация, честное слово :)
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159739
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М.Голованов funikovyuriНе совсем понял зачем в приведенном примере begin tran/commit, но так или иначе искренне советую перестать пороть чушь

Я вот тоже не совсем понял, зачем он так писал. И искренне выгнал его.

BTW эти операторы Begin Tran/Commit там погоды не делают - ни плохо ни хорошо от них не будет, одно выражение SQL и так всегда выполняется в одной транзакции
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34159840
Oracle -developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
М.Голованов
.....
BEGIN TRANSACTION
SELECT bla bla
COMMIT
.....
и спокойно жевал. Все железно и по правилам. А не тянет - берем сервак покруче...
А такая конструкция очень полезна

BEGIN TRANSACTION
SELECT bla bla
SELECT bla1 bla1
SELECT ...
COMMIT

если вы знаете,что такой транзакция на чтение.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34160001
Oracle -developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
М.Голованов funikovyuri М.ГоловановЧитается только то, что уже есть в таблицах.

Это, если говорить мягко, неправда...


То есть как неправда? В ISAM доступ к конкретной записи всегда последователен - что на чтение, что на обновление. Что можно прочитать в каждый данный момент, кроме того, что в этот момент есть в записи?

funikovyuriХм... Иногда лучше жевать....

Вот именно. SQL транзакции позволяют беззаботно жевать. Был у меня знакомый программист... всегда писал так:

Код: plaintext
1.
2.
BEGIN TRANSACTION
SELECT bla bla
COMMIT

и спокойно жевал. Все железно и по правилам. А не тянет - берем сервак покруче...
Мне страшно подумать,если ваша разработка связана с финансами,с бухгалтерией.
Страшно подумать,что может произойти с денюжками,если использовать такой подход в финансовых/банковских системах.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34160012
Oracle -developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
М.Голованов 1024гугл для поисковых индексов использует MySQL например. Микрософт вполне вероятно MS SQL

Трудно сказать, что они используют.

Я в проектах, использующих Hibernate, всегда стараюсь использовать MyISAM таблицы MySQL. Поскольку они без транзакций, работают очень быстро. А транзакции (если вообще нужна двухфазная фиксация) и ссылочная целостность поддерживаются на уровне Hibernate / прикладного кода - там, где это надо. Опять имею разумный баланс производительности и функциональности.

Вообще спор пошел на уровне "а у нас в квартире газ, а у вас?". Нет никакой абсолютной истины. Есть разумные решения в конкретных ситуациях, причем это решения, использующие все известные возможности плюс интуицию / анализ / сопрставление / комбинирование. Решения, основанные на соображениях "все делают это так" или "мне аказали, что надо делать так", в программировании редко бывают разумными. Хорошо, если вообще работающими.
Ссори,
по проблеме в финансовых системах корректнее процитировать это.
....
Мне страшно подумать,если ваша разработка связана с финансами,с бухгалтерией.
Страшно подумать,что может произойти с денюжками,если использовать такой подход в финансовых/банковских системах.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34160045
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 работать с записями, с которыми она работать не должна, проблем с производительностью она не доставит. Однако здравый смысл - вещь редкая...
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34160824
cooluser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М.Голованов

Второе утверждение верно без оговорок.
Первое утверждение верно только при определенных условиях:
а) в течение некоторого времени работы приложения доступ к записи осуществляется многократно,
б) запись в течение этого времени может обновляться.


Да понятно что кэшем надо пользоваться разумно. Я просто привел факт - кэш есть, если пользоваться разумно будет хорошо. Разумность у каждого проекта своя.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34162495
Siarhei Berdachuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dremmmmmЕсли нормализовать БД к 3 форме, и все таблицы описать в Hibernate, то это "вешалка". Наверно из-за нормализации тормазит, т.к. БД "рисуют" Java-программисты, а не БД-деволоперы. (спасибо Hibernate , о БД думать не надо).

Странное высказывание, судя по моему опыту на hibernate вполне можно сделать ранее спланированную структуру БД с нужными индексами внешними ключами и т.д. Да и запросы вполне можно подкорректировать, к нужному виду.

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

Процентов на 99 могу сказать, что проблема не в Hibernate, а в конкретном "бутылочном горлышке", возможно неправильном проектировании базы данных или неучитывании того, как работает СУБД.

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

Как вариант, временно перенастроить соединение на Oracle (думаю тут все будет работать по аналогии) и потестить прогу специализированными приблудами, например как я писал несколько лет назад в статье

много лет использую данную методологию для поиска этих самых бутылочных горлышек.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34162518
Ух_Ты
вот и докатились до аналогов FireBird )
Эй, "хуже татарина" - ну что я говорил? Уже пошли разговоры про то, как база свои данные обновляет...

Хм. Ну Firebird и Firebid. Чего вы так к птичке неровно дышите? Всякому овощу - свое время. У нас вот для развертываний системы с небольшим количеством данных используется FB, а когда данных много или у заказчика особые требовария - Oracle. Часть системы вообще использует специализированую нереляционную БД (ближайший популярный аналог - BerkleyDB, только та, что используем мы, поудобнее для наших задач). Я наверное по вашей логике должен со стыда сгореть за это. Это ведь не Oracle и не MS SQL Server. Но свои нехитрые задачи (словарный поиск по простым критериям, быстрая вставка/обновление) эта недо-СУБД решает значительно более производительно, чем "взрослые" СУБД.
Так и MySQL, для каких-то задач оптимальна.
Ух_Ты
хуже татарина
Стало интересно, что такое "статические XML-контейнеры". Я не так долго работаю с Java,
поэтому наверное не слышал о таком. Просветите?

Ну не знаю я - туповат наверно. Для меня это - описание таблиц (которое хранится в трогательном XML), к которым предполагается применить SQL. Для дальнейшего изменения данных. А Вы разве не работали с Hibernate?
Да, я использовал и использую Hibernate 2/3. Насчет вопроса, я тогда правда не понял, что такое эти "статические контейнеры" . Теперь мне понятно, что вы так файлы конфигурации H. называете ("маппинги").
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34162523
Siarhei Berdachuk
Процентов на 99 могу сказать, что проблема не в Hibernate, а в конкретном "бутылочном горлышке", возможно неправильном проектировании базы данных или неучитывании того, как работает СУБД.

+1. Если что-то тормозит, надо измерять производительность. Инженерный подход к разработке ПО рулит. Когда что-то тормозит, надо узнать, что тормозит, и как правило проблему можно решить, это путь инженера, а можно заявить, что конкретно вот из-за Hibernate все беды и надо её выкинуть и все заработает. Это может сработать иногда, но подход отдает шаманством. Есть хорошие профайлеры для Java и средства измерения производительности SQL запросов. В Hibernate всегда можно включить вывод SQL, отправляемого в СУБД в лог. Можно смотреть планы выполнения, и, если что не так, лечить. Забыть SQL и принципы оптимизации запросов к БД, используя Hibernate не получится.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34163071
Java - dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siarhei Berdachuk....
Что касается тормозов, то надо выделить конкректное узкое место, в логах посмотреть что за SQL запросы он генерит, проанализировать планы выполнения запросов.
....
.
А какой смысл тогда использовать hibernate,если все равно надо лезть и анализировать запросы,который он генерит(наверняка еще целую кучу ненужных запросов) и затем их оптимизировать сложным образом настраивая hibernate, что бы ОН ВЫДАЛ нормальный запрос.
Все проще написать сразу самому нормальный запрос SQL.
...
Рейтинг: 0 / 0
Кто использует Hibernate в БОЛЬШИХ проекта
    #34163222
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Java - devА какой смысл тогда использовать hibernate,если все равно надо лезть и анализировать запросы,который он генерит(наверняка еще целую кучу ненужных запросов) и затем их оптимизировать сложным образом настраивая hibernate, что бы ОН ВЫДАЛ нормальный запрос.
Все проще написать сразу самому нормальный запрос SQL.
Hibernate, как дополнительный уровень абстракции, не может знать всех нюансов использования конкретной СУБД. И это разумная плата за универсальность.
...
Рейтинг: 0 / 0
25 сообщений из 130, страница 5 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Кто использует Hibernate в БОЛЬШИХ проекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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