Hallo an alle Leser !
Im Rahmen einer Performance-Analyse nehme ich in eine
einfache Tabelle mit 8 Spalten in einer For-Schleife 100 Datensätze
auf. Dazu verwende ich:
(A) eine TTABLE-Komponente und
(B) eine TQUERY-Komponente
Die Messung findet einfach mit GETTICKCOUNT jeweils vor und
nach der Schleife statt. Mit DBISAVECHANGES und TABLE.CLOSE wird
gewährleistet, dass der CACHE nicht zu viel verfälscht.
Das Ergebnis hat mich allerdings überrascht:
TTABLE benötigt mit "APPEND/POST" ca. 300 ms.
TQUERY mit "INSERT INTO" ca. 1700 ms.
Bei Verwendung von SQL-Parametern und PARAMBYNAME in der
TQUERY-Komponente benötigt (B) ca. 1500 ms.
Als Datenbank verwende ich in beiden Fällen ACCESS 97 mit
JET-Engine 3.5 und BDE.
FRAGE(N):
Ist dieser relativ grosse Unterschied speziell in der Implementierung
der ACCESS-Anbindung der BDE begründet oder ist die BDE allgemein
TTABLE-lastig ?
Kann dieser Unterschied auch auf andere Datenbanken übertragen werden
(z.B. ORACLE, INTERBASE) ??
Oder ist TTABLE hier nur schneller als TQUERY weil ACCESS eine
Desktop Datenbank ist und ist das ganze bei Oracle genau umgekehrt ??
Ich mache mich nun zu ORACLE-Tests auf, dessen Ergebnisse ich baldigst
nachreiche.
Für tiefsinnige Kommentare allseits dankbar...
Adi
Im Rahmen einer Performance-Analyse nehme ich in eine
einfache Tabelle mit 8 Spalten in einer For-Schleife 100 Datensätze
auf. Dazu verwende ich:
(A) eine TTABLE-Komponente und
(B) eine TQUERY-Komponente
Die Messung findet einfach mit GETTICKCOUNT jeweils vor und
nach der Schleife statt. Mit DBISAVECHANGES und TABLE.CLOSE wird
gewährleistet, dass der CACHE nicht zu viel verfälscht.
Das Ergebnis hat mich allerdings überrascht:
TTABLE benötigt mit "APPEND/POST" ca. 300 ms.
TQUERY mit "INSERT INTO" ca. 1700 ms.
Bei Verwendung von SQL-Parametern und PARAMBYNAME in der
TQUERY-Komponente benötigt (B) ca. 1500 ms.
Als Datenbank verwende ich in beiden Fällen ACCESS 97 mit
JET-Engine 3.5 und BDE.
FRAGE(N):
Ist dieser relativ grosse Unterschied speziell in der Implementierung
der ACCESS-Anbindung der BDE begründet oder ist die BDE allgemein
TTABLE-lastig ?
Kann dieser Unterschied auch auf andere Datenbanken übertragen werden
(z.B. ORACLE, INTERBASE) ??
Oder ist TTABLE hier nur schneller als TQUERY weil ACCESS eine
Desktop Datenbank ist und ist das ganze bei Oracle genau umgekehrt ??
Ich mache mich nun zu ORACLE-Tests auf, dessen Ergebnisse ich baldigst
nachreiche.
Für tiefsinnige Kommentare allseits dankbar...
Adi
Comment