Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO Access langsame Reaktionszeit (https://www.delphipraxis.net/144382-ado-access-langsame-reaktionszeit.html)

Mandi Nice 6. Dez 2009 20:40

Datenbank: Access • Zugriff über: ADO

ADO Access langsame Reaktionszeit
 
Hallöchen

Ich stellen in einem DBGrid die Daten einer AccessTabelle dar.
Der Zugriff erfolgt über TADOTable und TDatasource.

Von einer anderen Stelle im Programm werden Daten aus einer Textdatei eingelesen und über einen zweiten TADOTable und TDatasource in die AccessTabelle eingetragen.

Es dauert nun sehr lange ( >= 4 Sekunden ) bis die Daten nach einem Requery in dem DBGrid angezeigt werden können .
( Die Datenbank befinded sich auf dem selben PC )


Kann man den Vorgang beschleunigen ?
Oder ist eine andere Datenbank schneller ?

Vielen Dank für Eure Hilfe.

hmg
Mandi

Bernhard Geyer 6. Dez 2009 22:15

Re: ADO Access langsame Reaktionszeit
 
Das verhalten liegt am bescheuderten Caching-Verhalten von Access. Such mal im Entwickler-Forum nach "A. Kosch, Access und Cache". Dort sollte beschrieben sein wie man dieses Caching austrickst.

sx2008 6. Dez 2009 22:21

Re: ADO Access langsame Reaktionszeit
 
Bei MS Access sollte es grundsätzlich nur eine zentrale ADOConnection verwenden.
Wenn man mehr als eine Connection hat, dann können Änderungen über Connection A erst dann von Connection B
gelesen werden, wenn der Datenbankcache in die MDB-Datei geschrieben wird.

Ich hoffe doch, dass deine ADOTables überhaupt eine ADOConnection verwenden.
Wenn man keine ADOConnection hat, sondern nur einen ConnectionString pro ADOTable,
dann erzeugt die VCL intern eine Connection pro ADOTable.

hoika 7. Dez 2009 07:49

Re: ADO Access langsame Reaktionszeit
 
Hallo,

Zitat:

Von einer anderen Stelle im Programm werden Daten aus einer Textdatei eingelesen und über einen zweiten TADOTable und TDatasource in die AccessTabelle eingetragen.
Wozu ist die TDataSource dort da ?

Zitat:

Es dauert nun sehr lange ( >= 4 Sekunden ) bis die Daten nach einem Requery in dem DBGrid angezeigt werden können .
Dauert das Requery immer so lange ?
Wieviele Datensätze werden angezeigt,
Hoffentlich nicht alle ?
-> TAdoQuery oder TAdoTabe.Filter zum Einschränken benutzen


Heiko

p80286 29. Okt 2010 13:46

AW: ADO Access langsame Reaktionszeit
 
Ich hab' diese alte Thema noch mal ausgegraben, weil ich ein ähnliches Problem habe.
Mit diesem Connection String konnte ich den Datandurchsatz um ca. 50% steigern:
Code:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyDatabase.mdb;Persist Security Info=False;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
Damit wird Access zwar immer noch nicht richtig schnell, aber wenn man es nutzen muß, hilft es ein wenig.
(Access 2003)

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz