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)