2013-06-17 18 views
8

Obecnie przełączam moją aplikację Java z JDBC na Hibernate, w mojej obecnej implementacji z JDBC ładuję statyczne dane o inicjalizacji aplikacji do zmiennych statycznych, więc nie muszę mieć bezpośredniego dostępu do bazy danych za każdym razem kiedy potrzebuję dane statyczne, przechodząc teraz w stan hibernacji, myślę o pozbyciu się tych zmiennych statycznych, o ile badałem, że hibernacja utrzymuje załadowane dane w pamięci podręcznej.Wydajność hibernacji i JDBC?

Jestem całkiem nowy w hibernacji, więc nie jestem pewien, czy przejście z mojej obecnej metody na hibernację da poprawę wydajności. Będę badał dalej przechodzenie w stan hibernacji i przeprowadzam testy wydajności, aby zobaczyć, która metoda jest lepsza, ale chciałbym tylko opinii na temat tego, co inni myślą o wydajności w obu tych metodach.

Dzięki.

+2

zestawione są [poza temat] (http://stackoverflow.com/help/on-topic) w tym miejscu. –

+1

Jaki jest twój powód przejścia z JDBC na Hibernate? Pod względem wydajności dobrze napisany JDBC (z buforowaniem) powinien pokonać Hibernate za każdym razem. Pod względem łatwości obsługi odpowiedź byłaby ... zależy to od rodzaju zapytań/modyfikacji bazy danych, których potrzebujesz ... – beny23

+0

Jeśli interesujesz się głównie możliwościami buforowania, dlaczego nie wybrać ehcache zamiast hibernacji? Średnio autorzy hibernacji twierdzą, że koszty ogólne wynoszą 10%. –

Odpowiedz

8

JDBC zawsze zapewnia lepszą wydajność w porównaniu do Hibernate dla większości dostawców baz danych. Możesz sprawdzić porównanie wykonane jak podano w linku poniżej. Stwierdza on, że hibernacja jest szybka, gdy wyszukuje tabele z mniejszymi wierszami, a jeszcze jdbc jest o wiele lepszy.

http://phpdao.com/hibernate_vs_jdbc/

Wybór hibernacji przez JDBC i zapytań SQL to nie ze względu na wydajność, ale ze względów głównie trwałości obiektu i niezależności pod względem bazy nie pisanie konkretnych zapytań do bazy danych. Możesz przeczytać przewodnik pdf, aby uzyskać lepszy widok.

http://www.mindfiresolutions.com/mindfire/Java_Hibernate_JDBC.pdf

0

Dla Twojej szczególnej sytuacji, poleciłbym stworzyć własny obiekt, który zachowałby potrzebne wartości statyczne. Możesz wypełnić go podczas inicjowania aplikacji lub gdy dane są pobierane po raz pierwszy.

Jeśli chodzi o komparatystykę porównawczą, najlepszym wyjściem jest to, że warstwa dostępu do danych w oparciu o Hibernacja będzie wyglądać tak dobrze, jak JDBC, lub degradacja perfromancji nie wpłynie na ogólne wrażenia użytkownika. Hibernacja jest używana do przyspieszenia rozwoju i zwiększenia łatwości konserwacji, a nie uzyskania przewagi nad JDBC.

Powiązane problemy