Page 1 of 1

Lazy Loading Tabelle

PostPosted: Tue Nov 10, 2015 1:29 pm
by stephanf
Hallo,

beim Anzeigen von mehrere hundertausend Datensätzen in einer Tabelle habe ich nicht den Eindruck, dass hier Lazy Loading verwendet wird. Es dauer sehr lange, bis die Tabelle mit Inhalt angezeigt wird. Muss dies noch speziell konfiguriert werden?

Grüße
F.Stephan

Re: Lazy Loading Tabelle

PostPosted: Tue Nov 10, 2015 2:10 pm
by Support@SIB
Lazy loading ist per Default aktiviert.

Welche DB verwenden Sie? Bei MySql ist die Sachlage etwas anders als bei allen anderen unterstützten DBs.

Sie können das Logging für DBAccess einschalten und prüfen welche/wieviele Select Statements - wann - abgesetzt werden.

Re: Lazy Loading Tabelle

PostPosted: Tue Nov 10, 2015 2:16 pm
by Development@SIB
Wir verwenden JVx selbst in unzähligen Kundenprojekten, mit sehr großen Datenmengen (im mehrstelligen Millionenbereich) und können versichern das Lazy Loading funktioniert. Natürlich ist das passende Datenbanksystem für solche Applikationen zu wählen. Die Performance ist im Falle von Views direkt abhängig von der Performance der Datenbank.

Re: Lazy Loading Tabelle

PostPosted: Tue Nov 10, 2015 2:21 pm
by rjahn
Was mir dazu einfällt:

Ist der MetaDaten Cache aktiviert

Die Abfrage der Metadaten ist "teuer" und wenn der Cache aktiviert ist, ist die Zeit = 0. Während der Entwicklung ist der Cache aber selten eingeschaltet bzw. wirkt der Cache erst ab dem 2. Öffnen einer Maske usw...

Am besten das Log anschalten und die Statements bzw. die Zeit checken.

Wieviele Spalten zeigt die Tabelle?

Verwendet die Tabelle BLOBs?

Re: Lazy Loading Tabelle

PostPosted: Mon Nov 16, 2015 3:20 pm
by stephanf
Hallo,

danke für die Infos. Das Lazy Loading funktionierte schon.
Ich hatte wohl bei 1 Mio. Datensätze eine schnellere Reaktion der GUI erwartet.

Ist konfigurierbar, wie viele Datensätze jeweils gelesen werden sollen?

Grüße
F.Stephan

Re: Lazy Loading Tabelle

PostPosted: Mon Nov 16, 2015 3:49 pm
by Support@SIB
Regel: DBAccess liest solange, bis die maxTime nicht überschritten wurde oder die minimale Anzahl an Zeilen noch nicht gelesen wurde.

Für DBAccess kann die maxTime verändert werden und für das DataBook gibt es den readAheadCount. Beide Einstellungen sind aber bereits optimiert, mit 100 Millisekunden bzw. 35.

Sie können aber gerne damit experimentieren.