Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Abfrage dauert mir zu lange





Frage

Hi there, ich habe mir eine Formular erstellt, mit dem man recht bequem Datensätze anzeigen lassen kann. Das Formular selbst ist ein Endlosformular. in dem Endlosformular werden aber nicht alle Daten angzeigt sondern nur ein bestimmter Ausschnitt aus einer Tabelle. Um das zu bewerkstelligen, habe ich hier eine Funktion die zwar geht, aber erbärmlich langsam ist, sobald Daten angezeigt werden sollen, die irgendwo in/ab Zeile 2000 liegen. D.h. je weiter "hinten/unten" die Daten liegen, umso langsamer wird die Funktion: Function creSQL() 'Diese If-Abfrage mach mir sorgen: If zähler > Forms![Bestellformular].schritt Then Forms![Bestellformular].RecordSource = "select top " & Forms![Bestellformular].schritt & " * from KapOrder where " _ & "bestellnr not in (select top " & zähler - Forms![Bestellformular].schritt & " bestellnr from KapOrder)" Else Me.RecordSource = "select top " & Forms![Bestellformular].schritt & " * from KapOrder" End If End Function Weiss jemand zufällig warum? MfG und Danke, M. Franke P.S. die Funktion hab nicht ich geschrieben, sondern habe ich irgendwo im Netz gefunden...*g*

Antwort 1 von hendrikw

Weil in dem Subselect (not in ...) eine immer größere Datenmenge durchsucht werden muss.
Falls Du das nach Bestellnummer sortiert anzeigen lässt (order by bestellnr), merke Dir die letzte angezeigte und hole Dir die nächsten n:
select top 20 from KapOrder where bestellnr > letzte_angezeigte_nummer
Dabei gehe ich davon aus, dass auf der bestellnr ein Index liegt (primary key ?).
mfg
Hendrik


Antwort 2 von weirdmf2

Habe die Zeile eben umgeändert, jetzt läuft alles schön schnell, zeigt aber keine Daten mehr im Endlosformular an :( Vorher lief langsam, hat aber alles angezeigt, jetzt läuft schnell und zeigt nichts mehr an. Lol.

Me.RecordSource = "select top " & Me.schritt & " * from KapOrder where " & "bestellnr not in (select top " & zähler - Me.schritt & " bestellnr > kennummer from KapOrder)"

Muss ich da noch irgendwelche Bezüge schaffen oder so?
MfG und Danke,
M. Franke


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: