![]() |
Re: array of records mit Daten aus SQL Query füllen
ich schließe mich mal meinen vorrednern an zum thema "das ist die aufgabe der DB".
Wenn du den krempel wirklich lokal machen "möchtest" solltest du überlegen das initiale befüllen der records in einen thread auszulagern und im hintergrund zu machen. bis der job fertig ist muss der nutzer mit der "langsamen" datenbank vorlieb nehmen. hier noch ne info für die anderen: Zitat:
reli |
Re: array of records mit Daten aus SQL Query füllen
Hallo,
bei 'nem Index für jede der Spalten
Code:
sollte das auch mit 'nem MSSQL-Server ratzfatz gehen.
strassen.id
orte.id personen.strassen_id personen.orte_id personen.sys_delete Wenn's Stringgrid nur zum Lesen und nicht für die Anzeige gebraucht wird, dann ist doch sicherlich Visible := false? Und wenn schon die Daten im Arbeitsspeicher, was macht ihr den bei Änderungen an den Daten, jedesmal Programm neu starten und warten. Bevor Du irgend welche Umwege machst, um Geschwindigkeitsprobleme der Datenbank zu umgehen, sorg' erst mal dafür, dass Du die Fähigkeit der Datenbank ausreizt. Wenn's dann noch unerträglich sein sollte, dann überleg' Dir Alternativen. MSSQL ist sicherlich nicht berühmt für Geschwindigkeit, aber auf einem halbwegs zeitgemäßen Server ist's für die Abfrage von Personendaten durchaus schnell genug. Wie oft suchen die Anwender denn überhaupt? Permanent oder 3 Stück die Stunde, da kann dann eine Wartezeit von 'ner Sekunde durchaus ok sein. Und wenn's mal 2 oder 3 sind, schimpft auch noch kein Anwender. Aber ob's nun 3ms oder 50ms oder 500ms sind, das merkt doch niemand. Und lohnt sich dafür der Aufwand, beim Programmstart alles in den Speicher zu laden und dabei möglichst viel Zeit zu sparen? Wenn's Dir drum geht, zu lernen, wie man sowas programiert, okay, aber für den dauerhaften Arbeitseinsatz, überleg Dir das noch mal. |
Re: array of records mit Daten aus SQL Query füllen
Zitat:
Zitat:
Zitat:
|
Re: array of records mit Daten aus SQL Query füllen
Hm... okay.. das mit dem Index und so müsste man mal testen.
Im Moment braucht der Datenbankserver für das auslesen der Daten für das Array ca 6 Sekunden. Ein SELECT * braucht 19 Sekuden. Da man an der Performance beim erstellen des Arrays anscheinend nicht mehr viel machen kann werden wir wohl unsere Datenbankstruktur etwas überarbeiten müssen. Das wird ein Spaß.. -.- Nunja, trotzdem DANKE für die extrem schnellen und auch guten Antworten, ich war ehrlich gesagt doch etwas überrascht!! :dp: |
Re: array of records mit Daten aus SQL Query füllen
Erkläre mir mal den Zusammenhang zwischen dem hier :
Zitat:
Zitat:
|
Re: array of records mit Daten aus SQL Query füllen
Naja, mit TStrings wird es aber schwierig, eine Matrix abzubilden.
|
Re: array of records mit Daten aus SQL Query füllen
Array of Record schreit ja auch geradezu nach einer TObjectList. Aber meine Zwischenfrage ist damit noch nicht beantwortet.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 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