Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Lokales SQL langsam? (https://www.delphipraxis.net/24556-lokales-sql-langsam.html)

phXql 22. Jun 2004 22:34


Lokales SQL langsam?
 
moin leute,

eins will ich jetzt einfach mal wissen. ist das lokale SQL (z.B. auf Paradox-Tabellen) langsamer im vergleich zu einer schleife? also ich hab den SQL-String 'SELECT * FROM tbl WHERE field1 = 'A''. wäre es schneller, die table in delphi zu öffnen, alle datensätze durchzugehen und zu schauen, ob das field1 'A' ist? hat das schon mal jemand gebenchmarkt oder erfahrungen mit der geschwindigkeit von dem lokalen SQL?

mfg

phXql

sakura 22. Jun 2004 22:40

Re: Lokales SQL langsam?
 
Bei größeren Datenmengen ist es nach meinen Erfahrungen immer schneller die Lösung über SQL zu fahren, speziell, wenn die Felder indiziert sind.

Grund: bei kleinen Datenmengen fällt der Overhead durch Queryanalyzen und Optimierungen negativ auf. Wenn jedoch große Datenmengen durchsucht werden stört das nicht mehr. Jetzt muss nur noch für die zurückgelieferten Daten eine Zeigerarray (Datenset) erstellt und genutzt werden und das ist der eigentliche Zeitfaktor.

Kurz: Lässt Du Dir alle Datensätze zurückgeben, so wird der Zeitanteil deer Aufbereitung so groß, daß der Zeitgewinn durch die nicht-DB-seitige Analyze einer komplexeren Query verloren geht. Auf welcher Seite die Daten überprüft werden ist eigentlich egal. Wobei davon auszugehen ist, daß die DB hier sogar schneller ist, da der Algorithmus wahrscheinlich besser ist als Deiner und :!: da die DB direkt an den Daten testen kann, ohne daß diese für Deine Anwendung vorher aufbereitet werden müssen.

...:cat:...

Jelly 23. Jun 2004 10:05

Re: Lokales SQL langsam?
 
Zitat:

Zitat von sakura
Auf welcher Seite die Daten überprüft werden ist eigentlich egal.

Vielleicht noch als Zusatzbemerkung, daß dies höchsten für Desktopdatenbanken gilt, was ja auch Thema in diesem Thread ist. Ich will aber bemerken daß bei Netzwerkdatenbank durch das Filtern am client erst mal ALLE Daten einer Tabelle übers netz gehen, was bei großen Mengen natürlich nicht von Vorteil ist. Allgemein gilt also bei Client/Server Systemen die Daten schon geeignet auf dem Server vorzubereiten. Nicht zuletzt sind C/S gerade hierfür optimiert, was der Delphi Filter sicherlich nicht in dem Maße beherrscht.

Gruß,
Tom

sakura 23. Jun 2004 10:07

Re: Lokales SQL langsam?
 
Zitat:

Zitat von Jelly
Vielleicht noch als Zusatzbemerkung, daß dies höchsten für Desktopdatenbanken gilt, was ja auch Thema in diesem Thread ist.

Stimmt - aber die Ansätze in meinen Ausführungen haben das ja auch deutlich gemacht. Alle obigen Aussagen haben sich ausschließlich auf den Desktop-DB-Ansatz bezogen.

...:cat:...

Jelly 23. Jun 2004 10:15

Re: Lokales SQL langsam?
 
War ja auch wirklich nur als Zusatzbemerkung gedacht :wink:

Tom


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 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