-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 8 posts ] 
Author Message
 Post subject: list() - Performance bei vielen Datensätzen
PostPosted: Tue Apr 17, 2007 8:47 am 
Newbie

Joined: Tue Apr 17, 2007 8:01 am
Posts: 6
Location: Krefeld - Germany
Hallo zusammen,

ich arbeite erst seit kurzem mit Hibernate und habe folgendes Problem:

Ich habe eine Tabelle, mit ca. 60.000 Einträgen und ca 30 Spalten.
Passend dazu habe ich ein POJO gemapped (erstmal nur mit 3 Spalten).
Wenn ich nun mit
Code:
List<Data> data = session.createCriteria(Data.class)
  .list();

eine Liste zur Darstellung in einer JTable erhalten möchte, darf ich ca 6 Sekunden warten.
Das ist natürlich viel zu lang.

Wie kann ich diese Problem nun lösen?
Ich versuche schon, diese Liste als Proxies zu erhalten, aber ich weiß nicht so recht, was ich verändern muß.

Bitte um Hilfe....


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 18, 2007 9:44 am 
Regular
Regular

Joined: Thu Jan 27, 2005 8:58 am
Posts: 80
Ich hatte ein ähnliches Problem mit der performanz als ich Criterias eingesetzt habe. Versuch mal Deine Abfrage mit Hilfe eines Query-Objektes zu lösen. Sprich:
Query q = session.createQuery("from Data");
List <Data> data = q.list();

Diese Umstellung hat bei mir komischerweise viele Performanzprobleme gelöst.


Top
 Profile  
 
 Post subject: Query.list()
PostPosted: Thu Apr 19, 2007 2:33 am 
Newbie

Joined: Tue Apr 17, 2007 8:01 am
Posts: 6
Location: Krefeld - Germany
Das hatte ich auch schon probiert, das verändert leider nichts.
Gibt es denn noch irgendwelche Einstellungen, die dieses Verhalten beeinflussen würden?


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 19, 2007 9:56 am 
Regular
Regular

Joined: Thu Jan 27, 2005 8:58 am
Posts: 80
Hast Du viele Sets innerhalb Deines Mappings, welche parallel mitgeladen werden? Wenn ja, dann versuch doch mal alle die Du nicht sofort benötigst auf lazy="true" zu stellen.

_________________
Weise ist nicht, wer viele Erfahrungen macht, sondern wer aus wenigen lernt, viele nicht machen zu müssen. (Karlheinz Deschner)


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 23, 2007 7:57 am 
Newbie

Joined: Tue Apr 17, 2007 8:01 am
Posts: 6
Location: Krefeld - Germany
In dem Mapping hab ich wie gesagt nur 3 Spalten von den 30 gemapped, und gar keine Sets oder ähnliches. Nur primitive Datentypen.
Ich befürchte, daß das die Zeit ist, um die PrimaryKeys aller Zeilen auszulesen. Zumindest passiert das, wenn man bis in die Hibernate Klassen debuggt.

Danke trotzdem für deine Tipps.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 24, 2007 7:59 am 
Regular
Regular

Joined: Thu Jan 27, 2005 8:58 am
Posts: 80
Aber dauert das bei Dir jedemal 6sec oder nur beim ersten Zugriff?

_________________
Weise ist nicht, wer viele Erfahrungen macht, sondern wer aus wenigen lernt, viele nicht machen zu müssen. (Karlheinz Deschner)


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 24, 2007 10:14 am 
Newbie

Joined: Tue Apr 17, 2007 8:01 am
Posts: 6
Location: Krefeld - Germany
Das dauert nur beim ersten Zugriff so lange.
Da greift dann wahrscheinlich der Cache.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 24, 2007 10:51 am 
Regular
Regular

Joined: Thu Jan 27, 2005 8:58 am
Posts: 80
Der initiale Zugriff dauert bei mir auch immer Recht lange.

Und die Hibernate-Session wurde vermutlich schon zuvor einmal initialisiert oder? Wenn nicht versuch doch ein Connection-Pooling (oder das in der Referenzdoku beschriebene Pattern über ThreadLocal).

Ansonsten hast Du höchstens die Möglichekit dem Anwender einene rsten schnellen Zugriff zu suggerieren, in dem Du diesen ersten Ladevorgang zwischendurch im Hintergrund auslöst (ist aber eine unschöne Lösung).

_________________
Weise ist nicht, wer viele Erfahrungen macht, sondern wer aus wenigen lernt, viele nicht machen zu müssen. (Karlheinz Deschner)


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 8 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.