Geschwindigkeitsvergleich?

18/08/2009 - 15:13 von Thomas Schultze | Report spam
Hallo,

ich suche mal Erfahrungwerte, was schneller ist, mehr SQL-Abfragen
oder eine "große" SQL die ich mit VBA auslese.

Gegeben sind Listen mit Datenwerten (eine bis wenige Spalten), die ich
derzeit per VBA in ein Formular leite:

1. SELECT TOP 1 ... ORDER BY ...;
2. SELECT TOP 1 ... ORDER BY ... DESC;
3. SELECT COUNT(...)...;
4. SELECT ... ORDER BY ...;

Damit frage ich den kleinsten, den größten sowie die Anzahl der Werte
ab. Die vierte Abfrage zieht dann sàmtliche Werte und ermittelt ein
paar statistische Größen, die ich im Abfrageeditor nicht gefunden
habe, per Hand (VBA).

Alternativ könnte ich so rangehen:
1. SELECT ... ORDER BY ...;
2. Recordset.MoveFirst - hier habe ich dann den kleinsten Wert
3. Recordset.MoveLast - hier habe ich dann den größten Wert
4. Recordset.RecordCount - Anzahl der Werte
5. Recordset.MoveFirst

Und dann die weitere Verarbeitung per VBA wie gehabt.

Was ist schneller, die SQL-Abfragen oder das Rumspringen in VBA?

Ich habe weder Ahnung noch eine Vermutung, und hoffe auf Erfahrungen
von Leuten, die das schon mit größeren Datenmengen (>100.000
Datensàtze?) durchgespielt haben.

Gruß, Thomas
 

Lesen sie die antworten

#1 Mark Doerbandt
18/08/2009 - 15:16 | Warnen spam
Hallo, Thomas,

Thomas Schultze:

ich suche mal Erfahrungwerte, was schneller ist, mehr SQL-Abfragen
oder eine "große" SQL die ich mit VBA auslese.

Gegeben sind Listen mit Datenwerten (eine bis wenige Spalten), die ich
derzeit per VBA in ein Formular leite:

1. SELECT TOP 1 ... ORDER BY ...;
2. SELECT TOP 1 ... ORDER BY ... DESC;
3. SELECT COUNT(...)...;
4. SELECT ... ORDER BY ...;

Damit frage ich den kleinsten, den größten sowie die Anzahl der Werte
ab. Die vierte Abfrage zieht dann sàmtliche Werte und ermittelt ein
paar statistische Größen, die ich im Abfrageeditor nicht gefunden
habe, per Hand (VBA).

Alternativ könnte ich so rangehen:
1. SELECT ... ORDER BY ...;
2. Recordset.MoveFirst - hier habe ich dann den kleinsten Wert
3. Recordset.MoveLast - hier habe ich dann den größten Wert
4. Recordset.RecordCount - Anzahl der Werte
5. Recordset.MoveFirst

Und dann die weitere Verarbeitung per VBA wie gehabt.

Was ist schneller, die SQL-Abfragen oder das Rumspringen in VBA?



grundsàtzlich ist SQL schneller als erst SQL und dann VBA. Wie immer
kommt es aber auf den Einzelfall an. Interessant dürften für Dich die
Performance-Vortràge von Michael Zimmermann bzw. die zugehörigen
Whitepaper(s?) sein. Schau mal bei http://www.donkarl.com AEK
Downloads vorbei.

Gruss - Mark

Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beitràge senden.

Ähnliche fragen