Habe ein Projekt von
BDE auf SDAC umgestellt und dann auch noch mit
ADO und dbExpress Versuche gemacht:
Nun eine Haken hat die Sache mit SDAC noch.
Ein Tabelle in der Datenbank die vorher mit TTable (
BDE) bearbeitet wurde hat so 250.000 Einträge.
Vorher via
BDE wurde die Tabelle mit
T.Open
T.Last
geöffnet und auf den letzten Satz gestellt. Die Table stand dann auf "Update_Where_KeyOnly".
Das dauerte mit
BDE so ca: 3 Sekunden. Der Sprung von Satz zu Satz dauerte ca: 0,5 Sekunden.
Der Sprung von Ende an den Anfang und umgekehrt ebenfalls so 1 Sekunde.
Mit SDAC dauert das Öffnen mit T.Last so 40-50 Sekunden.
Der Sprung auf Anfang oder Ende dauert jetzt ca. 1 Minute
Das "Finden" eines Satzes mit Locate dauert 3-5 Sekunden vorher mit der
BDE
und FindKey war es nur eine halbe Sekunde.
Für dieses Problem habe ich bis jetzt keine Lösung gefunden.
Werde wohl für dieses Projekt auf
BDE bleiben müssen, da alle Versuche mit dbExpress,
ADO und SDAC das Problem mit dem langen Laden bei der Tabelle mit dem 250.000 Einträgen haben.
Weis zufällig jemand wie die
BDE die Befehle TTable.Open und TTable.First und TTable.Last in
SQL Anweisungen für den MS
SQL Server umsetzt.
Problematisch ist offenbar das sowohl SDAC,
ADO als auch dbExpress die Primärindex dieser Tabelle nicht nutzen können oder wollen.
Der Zugriff via
BDE orientiert sich anscheinend am dem Primärschlüssel, so das die Befehle open und Last innerhalb von nur 0,5 Sekunden erledigt sind und kein grosser Datentransfer vom Server aus stattfindet.
Selbst die Umstellung der SDAC Table auf Cursorkeys des Servers bringt hier keine Verbesserung das Laden geht zwar dann schnell aber die Befehle Next und Prev zum Navigieren oder das Laden eines bestimmen Satzes über den Primärschlüssel dauern dann jedesmal so 20-30 Sekunden.