AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Query Performance
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Query Performance

Ein Thema von renekr · begonnen am 31. Jan 2008 · letzter Beitrag vom 1. Feb 2008
Antwort Antwort
Seite 1 von 3  1 23      
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#1

SQL Query Performance

  Alt 31. Jan 2008, 17:17
Datenbank: SQL 2005 • Version: STD • Zugriff über: ADO
Hallo,

Ich wollte mich mal erkundigen wie Ihr Größere Datensätze abfragt aus dem Programm heraus.
Ich habe zb.: 60T DS und das dauert als lang.

Ich lade diese in ein Grid rein.

Wie macht ihr das so?

Besteht zudem eine Möglichkeit eine ADOQuery oder ADOTable im Client zu sortieren,weil eine Order by auf die Performance des Servers geht.

danke
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#2

Re: SQL Query Performance

  Alt 31. Jan 2008, 17:27
Performance ist relativ...

Ich habe hier paar Tabellen mit 1-2 Mio. Datensätze.
Diese lassen sich noch in 1-2 Sekunden abfragen.

Bei den Tabellen mit mehr als 10 Mio. Datensätze, dauert es etwas länger, da diese selten im Zugriff sind (nicht gecached).
30-45 Sekunden - unser SAN ist etwas langsam.

Aber wenn du Tunen willst ...
Zeichne deine Zugriffe mit dem Profiler auf und lass das analysieren.
Das M.-Studio schlägt dir dann schon andere Keys/Indexe vor, wenn notwendig.

Ansonsten viel Ram in den Server bauen, schnelle Platten nehmen mit Raid. Nicht zu vergessen sind große CPU's mit viel Cache.

[edit]
Ah - hab das mit dem Grid überlesen. Meine Angaben beziehen sich auf die Query-Performance.

Wenn du soviele Datensätze läds, solltest du den VST verwenden.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: SQL Query Performance

  Alt 31. Jan 2008, 17:29
Zu 1.) Ich würde nicht die komplette Datenmenge auf einmal fetchen. 60000 DS sind sowieso etwas viel (der Übersicht wegen)
2. erübrigt sich dann. Eigentlich ist das noch keine große Menge und sollte schnell sortiert sein.
Existieren den passende Indices?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#4

Re: SQL Query Performance

  Alt 31. Jan 2008, 17:34
Hallo
Ist es wirklich notwendig so viele Datensätze auf einmal zu laden ?
Kannst du die Menge nicht durch sinnvolles Filtern einschränken ?
Große Datenmengen verbrauchen bei ADO auch viel RAM!!
Peter Schaible
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: SQL Query Performance

  Alt 31. Jan 2008, 17:44
Verwenden für unsere Grid-Anzeigen maximal x Datensätze die per "select TOP x ..." erst gar nicht vom Server geholt werden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#6

Re: SQL Query Performance

  Alt 31. Jan 2008, 17:48
Zitat:
Verwenden für unsere Grid-Anzeigen maximal x Datensätze die per "select TOP x ..." erst gar nicht vom Server geholt werden.
Was meinst du damit ?
Peter Schaible
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: SQL Query Performance

  Alt 31. Jan 2008, 17:48
Zitat von renekr:
Ich lade diese in ein Grid rein.

Wie macht ihr das so?
In einem Stringgrid. Faktor 10-100 schneller kann man schon alleine dadurch sein, dass das Stringgrid im Hintergrund gefüllt wird. Also nicht immer nur die DB im Verdacht haben.
Gruß
Hansa
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: SQL Query Performance

  Alt 31. Jan 2008, 18:43
Hi,
das ist mir klar.
Ich lade im moment die DS in ein DBGrid rein.
Auch mit Top 10 Percent.
das sidn dan n6600 Stück.


Aber wie kann ich das ev. besser machen?
Kein DB Komponente nehmen? Query aufmachen udn in ein non DB Grid rein füllen?

Oder wie kann ich zb. das Query oder ne Table im Client sortieren.

Ich zeige bei onclick oder onchanging der DBGrid die Details an und hole zudem noch ein Bild in ein image rein von der Kennummer abgeleitet.(Das Bild ist nicht in der DB sondern auf einem Share als Kleines jpg.

Was wäre am besten?


Danke
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: SQL Query Performance

  Alt 31. Jan 2008, 20:27
Niemand, aber auch wirklich niemand benötigt mehr als 1000 Datensätze im Client auf einmal. Alles lässt sich durch Paging, Filtern und Aggregate
optimal umsetzen.

Ich habe einen Kunden, der hat mit seiner Access-Applikation Monatsauswertungen der Kundenaufträge gemacht. Alle Datensätze reingesaugt und im Grid summiert. Mittlerweile hat er eine Funktion 'Zeige Monatsumsätze' und sieht die Ergebnisse für alle Kunden auf einmal. Viel schneller, viel besser, viel effektiver.

Man muss ein wenig umdenken, und dem Anwender die richtigen Werkzeuge (=vorgefertigte Reports) in die Hand drücken. Oder man bringt ihm SQL bei. Es gibt fast immer irgendwo einen Spezi, der sich dafür interessiert.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#10

Re: SQL Query Performance

  Alt 1. Feb 2008, 06:16
Zitat:
Alles lässt sich durch Paging, Filtern und Aggregate
optimal umsetzen.
Was bedeutet Paging und Aggregate ?
Ist das etwas von SQL ? Nur bei bestimmten Datenbanken ?
Peter Schaible
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 19:46 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