AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken ADO und Clientdataset sehr langsam
Thema durchsuchen
Ansicht
Themen-Optionen

ADO und Clientdataset sehr langsam

Ein Thema von Rainer Wolff · begonnen am 30. Nov 2010 · letzter Beitrag vom 30. Nov 2010
Antwort Antwort
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
320 Beiträge
 
Delphi 10.4 Sydney
 
#1

ADO und Clientdataset sehr langsam

  Alt 30. Nov 2010, 08:34
Datenbank: SQL Server • Version: 2008 • Zugriff über: ADO
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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: ADO und Clientdataset sehr langsam

  Alt 30. Nov 2010, 09:55
Welche CurserLocation wird bei ADO verwendet? Sollte clUseClient sein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
320 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: ADO und Clientdataset sehr langsam

  Alt 30. Nov 2010, 10:07
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.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: ADO und Clientdataset sehr langsam

  Alt 30. Nov 2010, 10:41
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?
  Mit Zitat antworten Zitat
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
320 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: ADO und Clientdataset sehr langsam

  Alt 30. Nov 2010, 11:19
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?
Ich wusste ja fast, daß die Frage mit der Datensatzzahl kommt .

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
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: ADO und Clientdataset sehr langsam

  Alt 30. Nov 2010, 11:47
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:
http://www.databasejournal.com/featu...erver-2008.htm

(Inbesondere rollup/cube, grouping sets, ..)
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:26 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