1 <имя свойства="hibernateProperties">
2 <реквизит>
3 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
4 <prop key="hibernate.show_sql">false</prop>
5 <!-- Создавать/обновлять таблицы базы данных автоматически при запуске JVM.
6 <prop key="hibernate.hbm2ddl.auto">update</prop> -->
7 <!-- Отключите пакетную обработку для улучшения сообщений об ошибках в PostgreSQL.
8 <prop key="hibernate.jdbc.batch_size">100</prop> -->
9 <prop key="hibernate.jdbc.batch_size">50</prop>
10 </реквизит>
11 </свойство>
Чем больше установлен размер выборки, тем меньше раз выполняется чтение базы данных и тем выше скорость; чем меньше размер выборки, тем больше раз выполняется чтение базы данных и тем медленнее скорость.
2. Если это очень большая система, рекомендуется создать файлы HTM. Ускорить продвижение страницы.
3. Не перекладывайте всю ответственность на спящий режим, проводите рефакторинг кода, сокращайте операции с базой данных, старайтесь избегать использования операций во время запросов к базе данных и избегайте рекурсивных операций запроса. Качество кода и рациональность конструкции системы определяют. Уровень производительности системы.
4. При запросе больших объемов данных используйте list() или iterator() с осторожностью, чтобы вернуть результаты запроса.
(1). При использовании List() для возврата результатов Hibernate инициализирует все результаты запроса в постоянные объекты. Если набор результатов велик, это займет много времени.
(2) При использовании iterator() для возврата результатов Hibernate будет вызывать запрос для инициализации соответствующего объекта каждый раз, когда вызывается iterator.next() для возврата объекта и использования объекта. Для больших объемов данных каждый запрос будет. Потратьте больше времени. Выгодно использовать итератор(), когда набор результатов большой, но содержит большое количество одних и тех же данных или когда не весь набор результатов будет использоваться.
5. В отношениях «один-ко-многим» и «многие-к-одному» использование механизма отложенной загрузки приведет к инициализации многих объектов при их использовании. Это может сэкономить место в памяти и снизить нагрузку на базу данных и коллекцию. в PO. Когда он не используется, взаимное взаимодействие с базой данных может быть сокращено, а время обработки уменьшено.
6. При наличии связанного ЗП (постоянный объект), если используется default-cascade="all" или "save-update", при добавлении нового ЗП обратите внимание на операцию назначения коллекции в ЗП, поскольку это может привести к многократному выполнению операции обновления.
7. Для таких операций, как добавление, изменение и удаление больших объемов данных или запрос больших объемов данных, количество взаимодействий с базой данных является наиболее важным фактором, определяющим время обработки. Сокращение количества взаимодействий — лучший способ. для повышения эффективности, поэтому в процессе разработки установите для show_sql значение true, глубоко разбирайтесь в процессе обработки Hibernate и попробуйте различные методы повышения эффективности. Постарайтесь отобразить каждую страницу как можно подробнее и сократите операции с базой данных до менее 100–150 элементов. Чем меньше, тем лучше.
Выше приведены некоторые соображения по оптимизации производительности спящего режима во время разработки проекта с помощью struts+hibernate+spring.