ПредишенСледващото

Висока работоспособност слой за достъп до данни изисква много знания за устройството на базата данни, JDBC, СПА, хибернация, и поста с най-важните техники, които можете да използвате, за да оптимизирате бизнес приложения.

1. Вписване на SQL отчети

Ако използвате рамка, която генерира изражението на лицето си, винаги трябва да валидира всеки израз на ефективност и производителност.

Управление 2. Connection

Връзките с базата данни са скъпи, така че винаги трябва да използват механизма за обединяване връзка.

Поради факта, че броят на съединения, които се отличават клъстер база данни, е необходимо да се освободи връзка ресурси възможно най-бързо.

При настройването на ефективността винаги трябва да се измери и да зададете правилния размер на басейна. Инструменти като FlexyPool могат да помогнат намерите правилния размер, дори ако сте zadeploili молбата си за производство на сървъра.

3. групиране JDBC

JDBC дозиране ни позволява да изпращате множество SQL изявления в една връзка сесия с базата данни. Gain на производителността е от съществено значение от страна на водача, и от базата данни. PreparedStatements са много подходящи кандидати за batchinga и някои RDBMS (например Oracle) се поддържа само за PreparedStatements на дозиране.

От въведена в API JDBC за batchinga (например, PreparedStataement.addBatch и PreparedStatement.executeBatch), ако се генерира изразът ръчно, което трябва да знаете от самото начало, ако можете да използвате за партиден процес или не. С хибернация, можете да превключите към дозиране просто настройка в конфигурацията.

Хибернация 5.2 предлага дозиране на ниво сесия. че е още по-гъвкаво решение в това отношение.

4. кеширане изрази

Кеширане изразяване е един от най-малко известни оптимизации за изпълнение, които можете да използвате. В зависимост от основата JDBC драйвер, можете да кешира PreparedStatements като страната на клиента (водач), както и от база данни (синтаксис дърво или дори план за изпълнение) на.

5. идентификатори хибернация

С помощта на генератор не е Hibernate ИДЕНТИЧНОСТ добър избор, защото това прави невъзможно за дозиране JDBC.

TABLE генератор е дори по-лошо, защото използва отделна сделка, за да изтеглите нов идентификатор, който може да се зареди регистър на операциите, както и басейн на връзки от факта, че всеки път, когато имаме нужда от нов идентификатор ще трябва отделна връзка.

6. Изберете точните типове данни за колони

7. релационна връзка

Hibernate предоставя много видове преобразуване на релационни отношения, но всички те са равни по отношение на ефективността.

Препоръки за подобряване на ефективността на Java постоянство - блог Анатолий Корсаков

Винаги се избегне еднопосочно сдружаване и @ManyToMany. За колекции предпочитане да се използва двупосочна връзка @OneToMany.

Въпреки това, за разлика от искания, колекция от по-малко гъвкави, дължащи се на факта, че те не могат лесно да бъдат предмет на страниране. Поради тази причина, винаги трябва да се запитаме дали събирането е толкова важно наистина. Съпоставена с същността на искането може да бъде по-добра алтернатива в много ситуации.

8. Наследяването

Когато става дума за наследството, разликите между обектно-ориентирани езици и релационни бази данни е още по-очевидна. СПА осигурява SINGLE_TABLE. JOIN. и TABLE_PER_CLASS за наследството, когато вашите съпоставяния и всяка от тези стратегии има предимства и недостатъци.

SINGLE_TABLE представя най-добре от гледна точка на SQL изявления, но губим интегритет на данните, поради невъзможността за използване на NOT NULL ограничението.

JOIN до проблеми с целостта решава данни чрез предлагане на по-сложни изрази. Докато не използвате полиморфни въпроси или @OneToMany асоциация за основни типа, тази стратегия работи добре. Истинската сила се основава на полиморфни @ManyToOne асоциации въз основа на стратегията за шаблон на страната на слоя за достъп до данни.

TABLE_PER_CLASS трябва да се избягва, тъй като тази стратегия генерира неефективни SQL отчети.

9. Размер Устойчивост контекст

При използване на СПА и хибернация винаги трябва да се има предвид размера на контекста на постоянство. Поради тази причина, не трябва да го взриви стотици управлявани лица. Намаляване на броя на управляваните субекти, ние се постигне значително подобряване на паметта и механизъм за управление по подразбиране мръсна проверка ще работят по-ефективно!

10. Качи единственото нещо, което наистина трябва

Разтоварване на големи обеми от данни вероятно е причина номер едно за проблеми с производителността на достъпа до данни слой. Проблемът е, че исканията за лица, използвани изключително дори за операции за четене.

прогнози DTO са по-подходящи за качване на персонализирани изгледи, а предприятието да бъде приключен само когато потокът от действия, бизнес логиката изисква да ги промените.

Нетърпелив разтоварване най-лошото и трябва да избягвате анти-модели, като например Open-сесия в View.

11.Keshirovanie

Препоръки за подобряване на ефективността на Java постоянство - блог Анатолий Корсаков

Релационни системи за управление на бази данни използват различни буфери в-памет за запазване на дискови ресурси. Кеширане база данни е много често се пренебрегва. Ние може значително да намали времето за реакция на настройка на базата данни на двигателя, така че работниците на набори от данни в паметта и не са разтоварени от диска постоянно.

Кеширане на ниво приложение, не се изисква за много корпоративни приложения. Кеширане на ниво приложение може да намали времето за реакция, като същевременно осигурява хранилище за четене на данни в момента, когато базата данни е затворен за поддръжка, или когато е настъпила сериозна повреда в системата.

кеша от второ ниво е много полезно да се намали времето за реакция за сделката за четене и запис, особено по архитектура реплики на Master-Slave. В зависимост от изискванията, Hibernate предлага следните стратегии: READ_ONLY. NONSTRICT_READ_WRITE. READ_WRITE. и транзакционни.

12. Контрол конкурентност

Изборът на сделка ниво на изолация е с най-висок приоритет, когато става въпрос за работа и целостта на данните. За потоци с много предизвикателства, за да се избегне загуба на данни за актуализиране, трябва да използвате оптимистично заключване или удължени Устойчивост контекст.

13. Вертикална и хоризонтална мащабиране

Релационни бази данни мащаб добре експонирани. Ако Facebook. Twitter. Pinterest или Stackoverflow да мащаб тяхната база данни, а след това има добър шанс, за да можете да мащабирате предприятие заявление, съответстващо бизнес изисквания.

Препоръки за подобряване на ефективността на Java постоянство - блог Анатолий Корсаков

Репликация и сегментиране на базата данни - това е един много добър възможности за увеличаване на капацитета и вие трябва да се възползват напълно от тези архитектурни модели в мащаб вашата кандидатура.

(Посетени 358 пъти, 1 посещения днес)

Сподели този линк:

Подкрепете проекта - споделете линка, благодаря!