[jboss-jira] [JBoss JIRA] (HIBERNATE-156) Latency in EntityManager.createQuery(jpaQuery)

Nidhal Ferchichi (JIRA) issues at jboss.org
Tue Aug 30 11:33:00 EDT 2016


Nidhal Ferchichi created HIBERNATE-156:
------------------------------------------

             Summary: Latency in EntityManager.createQuery(jpaQuery)
                 Key: HIBERNATE-156
                 URL: https://issues.jboss.org/browse/HIBERNATE-156
             Project: Hibernate Integration
          Issue Type: Bug
         Environment: hibernate 4.2.0.FINAL
            Reporter: Nidhal Ferchichi
            Assignee: Steve Ebersole
            Priority: Critical


We have a latency issue on the process of query creation :
 given this method :

public Collection executeJPQL(String jpaQuery, String persistenceUnit)
			throws ServiceException {
EntityManager em = EntityManagerGetter.getEntityManager(
				persistenceUnit, true);

//Some code here
Query query = em.createQuery(jpaQuery);

//Some code here

Collection result = query.getResultList();

//Some code here

return result;

}

The query is a JPQL query :

 SELECT s.isin, sf.thirdPartySubFund$refBCT, s.currency$isoCode, acr.currency$isoCode, acr.navDecimalsNumber, s.shareType, s.shareStatus, s.investorType, c.investorType, st.subscriberTypeCode, cst.subscriberTypeCode, s.maximumSubscriptors, c.maximumSubscriptors, sf.isLotAccounting, s.marketingPeriodStartDate, c.marketingPeriodStartDate, sf.marketingPeriodStartDate, s.marketingPeriodEndDate, c.marketingPeriodEndDate, sf.marketingPeriodEndDate, tr.transactionRuleType, tr.amount, tr.shareQuantity, tr.minInvestCurrency$isoCode, tr.percentage, ctr.transactionRuleType, ctr.amount, ctr.shareQuantity, ctr.minInvestCurrency$isoCode, ctr.percentage, sftr.transactionRuleType, sftr.amount, sftr.shareQuantity, sftr.minInvestCurrency$isoCode, sftr.percentage, s.commissionBaseAmountType, c.commissionBaseAmountType, sf.commissionBaseAmountType, s.prepayment, c.prepayment, c.cashAccountingInAdvance, sf.cashAccountingInAdvance, s.isLockUp, c.isLockUp, sf.isLockUp, s.minNbrDaysLockUpPeriod, c.minNbrDaysLockUpPeriod, sf.minNbrDaysLockUpPeriod, dc.country$isoCode, s.bearerIF, s.clearerIF, s.nominativeIF, s.registeredIF, sf.europeanStandards, sf.euroRegulation, s.isCDSC, c.isCDSC, sf.isCDSC, s.cdscCommissionNAV, c.cdscCommissionNAV, sf.cdscCommissionNAV, tb.transactionType, ctb.transactionType, sftb.transactionType, s.quantityRoundingRule, sf.quantityRoundingType, s.startDate, s.endDate, tr.ruleStartDate, tr.ruleEndDate, ctr.ruleStartDate, ctr.ruleEndDate, sftr.ruleStartDate, sftr.ruleEndDate, tb.blockingStartDate, tb.blockingEndDate, ctb.blockingStartDate, ctb.blockingEndDate, sftb.blockingStartDate, sftb.blockingEndDate, sf.prepayment, s.initialNAVDate, s.initialSubscSens, s.initialSubscNbrDaysShift, s.initialSubscCutOff, s.initialSubscTimeZone, c.initialSubscSens, c.initialSubscNbrDaysShift, c.initialSubscCutOff, c.initialSubscTimeZone, sf.initialSubscSens, sf.initialSubscNbrDaysShift, sf.initialSubscCutOff, sf.initialSubscTimeZone, s.swingPrice, sf.swingPrice FROM com.caceis.cfr.fund.Share s JOIN s.subFund sf LEFT OUTER JOIN s.shareClass c LEFT OUTER JOIN s.subscriberType st LEFT OUTER JOIN c.subscriberType cst LEFT OUTER JOIN s.allowedCurrencies acr LEFT OUTER JOIN s.distributionCountry dc LEFT OUTER JOIN s.transactionRule tr LEFT OUTER JOIN c.transactionRule ctr LEFT OUTER JOIN sf.transactionRule sftr LEFT OUTER JOIN s.transactionBlocking tb LEFT OUTER JOIN c.transactionBlocking ctb LEFT OUTER JOIN sf.transactionBlocking sftb WHERE s.startDate <= TO_DATE('19-08-2016','dd-MM-yyyy') AND s.endDate >= TO_DATE('19-08-2016','dd-MM-yyyy') AND s.isin IN( 'FR0010373092','FR0010381905','FR0010371773') ) 

The creation of the query take about ~ 23 seconde . (em.createQuery()) .

The execution time take about 9 ms !!

The latency is in the creation of the query .

Is the 23 sec is an acceptable time ? How could we avoid this latency .



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)



More information about the jboss-jira mailing list