![]() |
Datenbank: SQL Server • Version: 2008 • Zugriff über: ADO
ADO und Clientdataset sehr langsam
Hallo,
ich versuche, eine größere Menge von Daten aus einem SQL-Server in einem Grid anzuzeigen. Dabei verwende ich momentan ADOQuery und Clientdataset. Diese Kombination ist aber sehr langsam, wie ich festgestellt habe. Ich habe zum Vergleich die selben 20000 Datensätze auf einem Firebird-Server und auf einem SQL-Server angelegt. Öffnen des Clientdataset bei Firebird: 0,36 s Öffnen des Clientdataset bei ADO: 5,8 s Öffnen der ADOQuery direkt ohne Clientdataset: 0,17s Wer kann mir einen Tip geben warum das so ist und wie ich es optimieren kann. Clientdataset würde ich eigentlich gern beibehalten, da ich das selbe Anzeigeformular bisher mit Firebird verwendet habe und weiter verwenden möchte und dabei nur die Query-Logik dahinter austauschen möchte. Alternativ könnte ich klar neu auf ADOQuerys aufbauen, aber das möchte ich eigentlich vermeiden. Gruß Rainer |
AW: ADO und Clientdataset sehr langsam
Welche CurserLocation wird bei ADO verwendet? Sollte clUseClient sein.
|
AW: ADO und Clientdataset sehr langsam
Ist auch dlUseClient.
Ich habe für mein Testprojekt alle Komponenten mit den Standardeinstellungen aufs Formular gezogen und inzwischen versucht, ein paar Einstellungen zu variieren, allerdings ohne Erfolg. |
AW: ADO und Clientdataset sehr langsam
Ich nehme an, Du hast einen wichtigen Grund, ADOQuery und Clientdataset gemeinsam zu verwenden? Warum reicht ADOQuery nicht?
Werden 20000 DS zu Testzwecken geladen oder ist das ein Standardanwendungsfall? |
AW: ADO und Clientdataset sehr langsam
Zitat:
Es geht um eine Erfassung von Störmeldungen, darüber wird anschließend eine Auswertung gelegt, einmal die Einzelstörungen, aber dann auch aufsummiert oder nach Tagen gruppiert. Das ganze läuft seit Jahren mit Firebird, jetzt hab ich aber SQL Server für eine Anwendung vorgegeben. Ich wollte eigentlich nur die IBQuery gegen eine ADOQuery austauschen und den Rest lassen, wie er ist (Sortieren in der Tabelle übers Clientdataset z.B.). Und hier fall ich eben mit der Geschwindigkeit auf die Schnauze. Ich sehe auch noch andere Optionen (z.B. mit den dbExpress-Komponenten geht das ganze viel fixer, aber dann kommt der Kollege mit dem Turbo-Delphi nicht an das Projekt, oder eben direkt die ADOQuery anzeigen, aber dann muss ich meine Auswertung stärker umkrempeln und bin weg von meinem Standardformular), daher hoffe ich noch auf eine Lösung mit den eingesetzen Komponenten. Und sicherlich kann ich auch Einschränkungen machen um die Anzahl der Datensätze zu reduzieren, aber das bedeutet eben auch ein paar Änderungen mehr als ich eigentlich machen wollte. Rainer |
AW: ADO und Clientdataset sehr langsam
Ich würde immer versuchen, solche Datenmengen im Client zu vermeiden. Für Zählen und Gruppieren ist der Server da. Kenne mich nicht mit MS SQL aus, aber vlt. hilft Dir das hier weiter:
![]() (Inbesondere rollup/cube, grouping sets, ..) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 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