Hi,
kann mir jemand sagen weshalb folgende Query eventuell Performanceeinbußen verursacht:
@NamedQuery(name = "Dummy.findByXYZ", query = "SELECT ut from Dummy ut WHERE ((startTime BETWEEN (:timerangestart) AND (:timerangeend)) AND startTime < (:timerangeend)) OR ((endTime BETWEEN (:timerangestart) AND (:timerangeend)) AND endTime > (:timerangestart)) OR (startTime <= (:timerangestart) AND endTime >= (:timerangeend))"),
Facade:
long start = System.currentTimeMillis();
Query query = getEntityManager().createNamedQuery(
"Dummy.findByXYZ");
query.setParameter("timerangestart", timerangestart);
query.setParameter("timerangeend", timerangeend);
@SuppressWarnings("unchecked")
List<Dummy> dummies = query.getResultList();
PerformanceLogger.log("Dummy.findByXYZ",
(System.currentTimeMillis() - start));
Fakt ist, wenn ich die Query in einem SQLDeveloper oder dergleichen ausführe, bekomme ich sehr sehr rasch das Result, wenn ich es jedoch aus der Webapplikation heraus ausführe brauche ich statt 0.0007ms oder dergleichen plötzlich 1000ms und mehr.
Andere Queries, welche auch komplexer sind sind trotzdem um ein vielfaches schneller (somit gehe ich nicht davon aus dass eventuell der Entitymanager des JBoss Servers ein Problem hat), nur bei der Query gibt es Probleme.
Jemand eine Idee?