Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> hiberante, jdbc скорость выполнения запросов 
:(
    Опции темы
slippery
Дата 1.10.2010, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 2.7.2007

Репутация: нет
Всего: нет



Добрый день. Я занимаюсь разработкой web-приложений на java в качестве веб-сервера  использую tomcat, также использую такие фрэймворки как  spring, hibernate(как реализация EntityManger) и СУБД PostgreSQL. В последнее время по работе мне приходиться писать хранимые процедуры занимающие разбором огромного количества строк. Время выполнения такой процедуры если её запустить из консоли или pgadmin'a составляет минуту-две, процесс  субд «сжирает» весь процессор и не отпускает его пока не будет выполнен парсинг всех строк. Однако если я выполняю вызов хранимки средствами hibernate из web-приложения: EntityManager.createNativeQuery(query, class) , где  query — запрос, а class- класс куда «мапиться» результат, то процесс субд выполняющий данную хранимку становиться как бы  «пассивным», то есть он «сжирает» не весь процессор, а процентов 5-10 и соответственно выполняется уже не минуту, а 10 минут, что совершенно недопустимо. Особенно если параллельно вызывается много таких хранимых процедур. Отсюда возникает вопрос почему так происходит, как это исправить и от чего это зависит, от самого hiberanate или драйвера jdbc? Возможно нужно определенным образом как-нибудь настроить тот же hiberante ибо щас я в persistence.xml указал просто:
<persistence-unit name="" transaction-type="RESOURCE_LOCAL"/>, а СУБД подключаю как бин :    
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="org.postgresql.Driver"/>
   …................................................................................................................
</bean>

 <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="showSql" value="false"/>
                <property name="generateDdl" value="false"/>
                <property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect"/>
            </bean>
        </property>
    </bean>

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"/>


В итоге мне нужно сделать чтоб при вызове хранимок из java они выполнялись так же по скорости как и из консоли(сжирали весь проц и быстро работали) или pgadmin'а иначе весь проект 
оказывается нерентабельным из-за медленной скорости работы. 
Заранее благодарен за вашу помощь.
PM MAIL   Вверх
Vasay
Дата 1.10.2010, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



slippery, 

На что бы я обратил внимание:

Когда вы работаете из консоли -от имени какого пользователя вы запускаете хранимую процедуру?

И от имени какого пользователя работает Hibernate ? Нет ли ограничения на ресурсы у на уровне пользователя? 


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0384 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.