![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: Zeos
DB-Zugriff beschleunigen
Hallo zusammen,
ich lese aus einer DB per Zugriff über Internet Daten aus einer einzelnen Tabelle. Auf dem Sortierkriterium liegt ein Index. Dennoch habe ich den Eindruck, dass es beim Programmstart zu lange dauert, wenn ein paar Minuten (3-5) nötig sind um ca. 50.000 DS einzulesen. EDIT: die Maschine auf der die DB liegt ist nicht die Schnellste :-( Hat jemand ne Idee das zu beschleunigen? |
AW: DB-Zugriff beschleunigen
Musst du wirklich beim Systemstart direkt 50.000 Datensätze lesen?
Ansonsten ist das Protokoll von Firebird nicht wirklich für langsame Netze (Internet) ausgelegt... Wie viele Spalten und was für Daten(größen) sind das denn? |
AW: DB-Zugriff beschleunigen
muss ich nicht unbedingt, ich überlege ja gerade, wie ich es besser machen könnte.
EDIT: es handelt sich um Adressdaten mit 30 Spalten |
AW: DB-Zugriff beschleunigen
Hilft Dir das hier weiter?
![]() So könnte man die Daten "häppchenweise" holen. |
AW: DB-Zugriff beschleunigen
Falls du bei FB die möglichkeit hast zwischen der Curserlocation (Client/Server) umzuschalten wäre evtl. das mal gut zu testen.
|
AW: DB-Zugriff beschleunigen
Zitat:
Alsooo mit first 100 oder first 1000 geht der Programmstart recht zügig. Jetzt bleibt nur die Überlegung, wo und wann ich den Rest einlese, ohne das DBgrid zu blockieren? |
AW: DB-Zugriff beschleunigen
Zitat:
Unterschied zwischen Zugriff übers Internet und Zugriff local, oder was willst du wissen ? |
AW: DB-Zugriff beschleunigen
|
AW: DB-Zugriff beschleunigen
Zitat:
na bei Firebird könnte man mit einer stored proc arbeiten, wenns ne bessere Möglichkeit gibt lasse ich mich gerne belehren. |
AW: DB-Zugriff beschleunigen
zB.: wenn es Adressdaten (Name,Vorname,Str,...etc) sind, dann mach doch vorher eine Auswahl über den Anfangsbuchtsaben des Namens oder eben ein anderes Kriterium. Ich denke du brauchst bestimmt nicht alle 50k Datensätze auf einmal, das ist ja Telefonbuchauspapierzeitalter!
|
AW: DB-Zugriff beschleunigen
Zitat:
ich danke euch |
AW: DB-Zugriff beschleunigen
Wenn ich es richtig verstanden habe, sagt die Cursor location nur etwas darüber aus wo die Ergebnisdaten gespeichert werden. Eine Stored Proc hat also eigentlich nichts damit zu tun.
Es kann natürlich gute Gründe geben 50.000 Datensätze mit 300 Feldern einzulesen, aber das sind doch eher die Ausnahmen. Gibt es keine Möglichkeit, die Datenmenge zu beschränken? Gruß K-H hat jemand den roten Kasten geklaut?? |
AW: DB-Zugriff beschleunigen
Zitat:
|
AW: DB-Zugriff beschleunigen
Eine Alternative wäre, die Addresstabelle lokal abzulegen und periodisch Updates zu ziehen. Dann hättest Du den Vorteil einer quasi "on the fly" Recherche verbunden mit (fast) aktuellen Daten.
Wenn die Eingabe schnell gehen muss (und in der Wirtschaft muss es immer schnell-schnell gehen), hättest Du mit diesem Ansatz einen entscheidenden Wettbewerbsvorteil. Der sicherlich am einfachsten umzusetzende Ansatz, nämlich der Datenbank anhand einer Suchmaske eine Vorauswahl treffen zu lassen, ist jedoch einfacher umzusetzen. Vergiss nur nicht, das die Auswahl hinsichtlich der maximalen Anzahl der Datensätze gedeckelt werden sollte ("SELECT FIRST 100 * FROM...") |
AW: DB-Zugriff beschleunigen
Hallo,
brauchst di "irgendwann" wirklich alle Datensätze, lade sie in einem eigenen Thread in eine eigene Datenstruktur (oder ein ClientDataSet). Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz