Extreme Veteran
Beiträge: 572
| Hallo Karl,
Karl Donaubauer - 07.05.20 17:16
PeterDoering - 07.05.20
waholin - 07.05.20 13:46
wollte mal anfragen, ob mir jemand sagen kann, welcher der beiden Zugriffe effektiver ist:
...
Deine Frage war ein Ausflug in vergangene Zeiten, weil .Index und .Seek zuletzt in DAO2.5 (Access 2.0 ) die empfohlene Zugriffsmethode war. ;- )
Seit Access95 und DAO3.0 wird .Seek eigentlich nicht mehr verwendet, soll heißen, Methode 1 aus deinem Screendump ist die empfohlene Methode.
Wo hast du das denn her?
Hmm, in ca. 20 Jahren auf Access hab ich genau eine Anwendung gesehen, für die ich den Auftrag hatte, sie von DAO2.5 auf ACEDAO umzustellen. ;-)
Ich bin da ganz anderer Meinung: dbOpenTable+Index+Seek ist die schnellste Methode, egal, in welcher DAO-Version. Die gute, alte, übliche Folgefrage ist dann abgehandelt in
Seek bei eingebundenen Tabellen
http://www.donkarl.com?FAQ6.10
Da kannst du gleich http://www.donkarl.com?FAQ1.35 hinterherschicken, denn damit ist Seek Geschichte. Aber auch ohne FE/BE kann man Seek höchstens gegen FindFirst usw. vergleichen, was sinnvoll nur in Fällen von FAQ 4.3 bis 4.5 anwendbar wäre. Die klassische Anwendung von OpenTable war seinerzeit, die gesamte Tabelle oder das Recordset zu öffnen und dann mit dem schnellen Seek zum gesuchten Datensatz zu springen, was man besser und schneller über die WHERE-Klausel macht.
Da es in eingebundenen Tabellen nicht direkt geht und der Performanceunterschied in der Praxis meistens wurscht ist, verwende ich zwecks weniger Codepfleegeaufwand, vulgo Faulheit (Entwurf mit lokalen Tabellen gg. Echtbetrieb mit eingebundenen), fast immer dbOpenDynaset. Außer, es muss mal extrem perfomanceoptimiert sein und Index+Seek bringen etwas im konkreten Praxistest (beim Kunden wegen Netz/Pfaden, Datenmengen etc.).
Genau. Das hätte ich in meiner ersten Antwort wohl dazuschreiben sollen. :-)
----- Gruss - Peter |