AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SDAC, ADO und dbexpress sehr langsam im Vergleich zu BDE

SDAC, ADO und dbexpress sehr langsam im Vergleich zu BDE

Ein Thema von mikesch40 · begonnen am 23. Mär 2006 · letzter Beitrag vom 23. Mär 2006
Antwort Antwort
mikesch40

Registriert seit: 6. Mär 2006
7 Beiträge
 
Delphi 7 Architect
 
#1

SDAC, ADO und dbexpress sehr langsam im Vergleich zu BDE

  Alt 23. Mär 2006, 08:42
Datenbank: MSSQL • Version: 2000 • Zugriff über: BDE TTable SDAC dbExpress und ADO
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.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.199 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: SDAC, ADO und dbexpress sehr langsam im Vergleich zu BDE

  Alt 23. Mär 2006, 09:06
Also irgendwo hast Du noch ein Konfigurationsproblem.
Ich selbst habe ein Programm auch von BDE umgestellt und verwende für den MS-SQL-Server-Zugriff ADO(Express) und habe absolut keine Performance-Probleme

Evtl. mal testhalber dazwischen laufende Virenscanner/Firewalls abschalten? Da der Zugriff u.U. auf andere Ports/Protokolle läuft trau ich Virenscanner/Firewalls alles zu. Falls nicht müsstest Du evtl. mal ein kleines Beispielprojekt posten wie deine Einstellungen bei ADO(Express) sind.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

Re: SDAC, ADO und dbexpress sehr langsam im Vergleich zu BDE

  Alt 23. Mär 2006, 09:52
Ich glaube wer auf einem richtigen DBMS TTable verwendet muss sich nicht wundern, dass es lahmarschig wird.
Alle Datensätze zu holen nur um den letzten Datensatz anzuzeigen ist doch schon sehr ... interessant ...
Die BDE hat hier bei TTable wohl ein paar Optimierungen gemacht, die ADO, SDAC,[jede andere nachsinntflutliche Zugriffsschicht] als unnötig empfinden wird. Denn TTable = böse.


btw: einen "letzten" DS im Sinne von "der ganz" hinten gibt es in keinem richtigen DBMS.
Lösch- und Einfügeoperationen können neue Datensätze somit auch in der Mitte einfügen (Überschreiben von gelöschten DS).
Eine Abfrage auf den letzten DS sollte über den größten PK Wert o.Ä. zuverlässig möglich sein.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 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