У меня есть вопрос, хотелось бы получить помощь.
У меня есть запрос от Java.JBoss подготовил заявление слишком медленно
SELECT DISTINCT field1, field1
from tblTableA WITH (NOLOCK)
WHERE criteriaField='CONSTANT TEXT'
я запускаю его с JPA
Query qry = entMgr.createNativeQuery(myQry) ;
List sqlResult = qry.getResultList() ;
Теперь, что qry.getResultList()
занимает слишком много времени для запуска - 75 или более секунд. Да, он возвращает около 700 000 записей, но тот же запрос запускается на Weblogic 10, используя ejb2 работает менее чем за 5 секунд
Может ли кто-нибудь помочь в решении этой проблемы, похоже, может быть какая-то конфигурация, которую мне не хватает, или техника, которой я не следую.
Есть что-то из-за использования jbosscmp-jdbc.xml
. У меня нет этого в моей настройке, но выяснил, что есть функция ленивой загрузки, которую мы можем настроить. Теперь я не уверен, как сделать запрос, который я запускаю, настроить в XML-файле. Кроме того, может ли это использоваться с аннотациями вместо xml-файла?
Попробуйте профилировать свой код, чтобы узнать, где потрачено время. – Andreas
Время тратится на qry, getResultList() - у меня есть время распечатать до этого и после этого. Эта конкретная строка кода занимает слишком много времени для выполнения. –
Но является ли это выполнение запроса, то есть ожидание базы данных или сортировка объектов Java, вот в чем проблема? Если это JBoss, как вы предполагаете, тогда профилирование обнаружит, где в коде JBoss проблема, и тогда вы можете лучше узнать, знают ли они об этом или сообщают, что она исправлена. – Andreas