kenn' ich so gar nicht (so viele Daten ? / Blobs?), wobei serverseitige Cursor mit
MSSQL-Server ohnehin problematisch sind. Hast Du schon mal:
Delphi-Quellcode:
Adodataset1.LockType := ltBatchOptimistic;
Adodataset1.Open;
Adodataset1.Connection := nil;
While not .....
versucht ?
Was kennst du so gar nicht?
Ich hab das jetzt mal mit verschiedenen LockTypes probiert. Ergebnis:
ltBatchOptimistic: 503 Sekunden
ltOptimistic (default): 508 Sekunden
ltReadOnly: 506 Sekunden
ltPessimistic 509 Sekunden
Die Werte liegen unter 10 Min. weil ich in dem Bsp. alles unnötige weggelassen habe (Anzeigeaktualisierung, Application.ProcessMessage...).
Macht also auch keinen unterschied.
Beim MS
SQL Server sollte man möglich mit clUseClient arbeiten. Nur bei Anbindung an Grid wäre hier clUseServer besser.
Ne mit Grids arbeiten wir nicht. Wir holen uns immer alle benötigten Daten ab und halten die im Speicher.
Wir hier evtl. mit ExecuteOptions.eoAsyncExecute gearbeitet?
Nein. War beim Aufruf einer Stored Procedure.
Sollte bei clUseClient kein Problem darstellen.
Bei clUseServer waren es dann aber (im nicht-optimierten Bsp.) nur noch 4 statt 10 Minuten. Und der Server entspricht von der Leistung her ungefähr meiner Workstation.
Edit: Zeit bei Readonly vergessen...
Edit2: ltPessimistic ergänzt