Einzelnen Beitrag anzeigen

Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Komplexe Abfrage an MSSQL:Dauert ewig über ADO, wieso?

  Alt 15. Mär 2006, 22:11
Zitat von alzaimar:
Im Allgemeinen fällt diese Performancediskrepanz nicht auf oder ist nicht vorhanden... Es ist ja egal, obs 100 oder 500ms dauert:
Schwupps = Schwupps.
Bist Du dir 100%ig sicher das die Abfrage in TSQL immer so schnell ist und nicht auch ab und zu so lange dauert. Solange die Ergebnismenge nicht übermäßig groß ist dürfte der ADOExpress-Overhead nicht zu groß sein.
Ich vermute eher das der Server an den Leistungsgrenzen läuft und vermutlich 1-2 Speicherriegel u.U. gewaltige Performancezuwäche bringen würde. Hast Du schon mal auf dem Server überprüft ob der Serverprozess auch wirklich 100% CPU-Zeit benötigt oder es so scheint als macht die CPU gerade Brotzeit. Das wäre nämlich ein Indiz das u.U. nicht alle benötigten Indeze auch wirklich 100%ig im Speicher gehalten werden und teilweise Festplattenzugriffe benötigen. Auch las mal den Queryanalyzer einen Abfrageplan erstellen ob wirklich alle Teile der Abfrage Indexe verwenden können.

Zitat von dfried:
Zitat von alzaimar:
@dfried: Ich schau mal..warte... clUseClient.
OK, stell das mal auf clUseServer, dann wird die Abfrage auch auf dem Server ausgeführt und nicht erst alles auf den Client rübergelutscht...
Bringt mit Sicherheit nichts relevantes. Die Abfrage wird immer auf dem Server ausgeführt. Allein ob die Ergebnismenge komplett zum Client übertragen wird oder erst bei Bedarf ist bei dieser Abfrage und MS-SQL höchstwahrscheinlich irrelevant da MS-SQL aufgrund des fehlenden Multi-Version-Konzepts (die 2005er-Version soll sowas können) eh eine Temp-Tabelle mit dem Ergebnis anlegen muss. Bei Oracle, MySQL oder Interbase könnte ein Server-Client hier was bringen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat