Java-предложение для сохранения результатов хранимой процедуры Oracle 9i с использованием Apache Tomcat - PullRequest
1 голос
/ 19 марта 2010

Я разрабатываю сервлет Java, который вызывает хранимую процедуру Oracle. Хранимая процедура, вероятно, со временем будет «расти», и меня беспокоит количество времени, необходимое для «отображения результатов на веб-странице».

Пока я нахожусь на стадии реализации, мне хотелось бы предложить несколько советов по структуре Persistence, которая будет работать на Apache Tomcat 5.5? Я вижу два подхода к сохранению результатов базы данных. Запланированный запрос к базе данных каждые N минут или что-то с использованием триггеров.

Hibernate кажется очевидным ответом, но я никогда не вызывал хранимые процедуры из Hibernate (HQL и Criteria). Есть ли более подходящая структура, которую можно использовать?

Ответы [ 3 ]

0 голосов
/ 19 марта 2010

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

Подумайте о Spring, если вы хотите упростить взаимодействие приложения с JDBC.

Хотя независимость от базы данных хороша. Я предполагаю, что вы используете 1. сложную логику с помощью pl / sql или 2. преобразования большого количества данных. Рассмотрите возможность использования оракула DMBS_SCHEDULER с триггерами.

0 голосов
/ 22 марта 2010

Hibernate кажется очевидным ответом, но я никогда не вызывал хранимые процедуры из Hibernate (HQL и Criteria).

Не так очевидно, не для хранимых процедур, особенно если вы просто вызываете хранимую процедуру и не имеете дело с постоянством объекта (операции CRUD)

Есть ли более подходящая структура, которую можно использовать?

Прямой JDBC или пружина StoredProcedure, или iBATIS . Но не в Hibernate, он не принесет никакой пользы для вашего варианта использования.

0 голосов
/ 19 марта 2010

Практически любая Java ORM будет работать в среде контейнера сервлета, такой как Tomcat: Hibernate, Cayenne, TopLink ... но это не поможет вам ни на шаг, улучшив скорость выполнения хранимых процедур и отрисовав страницу быстрее.

Вот несколько общих советов:

  • не использовать хранимые процедуры (блокировка поставщика, кошмар обслуживания, код спагетти, нестандартный язык разработки и т. Д.)
  • используйте ORM
  • начните с базовых стратегий оптимизации производительности, чтобы получить лучшее время отклика: убедитесь, что ваши индексы имеют смысл, настройте конфигурацию базы данных, добавьте избыточные значения в базу данных, используйте триггеры для их пересчета, если это абсолютно необходимо, если вам не нужно абсолютные самые свежие данные, периодически рассчитывайте результаты и просто читайте их при необходимости и т. д.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...