Geschwindigkeitsoptimierung von SQL-Statements beim ADS

Advantage Database Server

Moderator: Moderatoren

Antworten
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Geschwindigkeitsoptimierung von SQL-Statements beim ADS

Beitrag von UliTs »

Seit einigen Jahren arbeite ich intensiv mit dem ADS und programmiere immer mehr SQL-Statements.
Hin- und wieder stolpere ich jedoch über ungünstig formulierte SQL-Statements, die der ADS nicht optimieren kann. Da der ADS aber von sich aus so rasend schnell ist, fällt das zunächst bei Tabellen mit nur wenigen 1000 Datensätzen kaum auf. Erst bei großen Datenmengen stelle ich dann signifikante Geschwindigkeitseinbußen fest.
-
Mit Hilfe des Data Architekten (ARC) kann man sich zu Statements einen "Execution Plan" anzeigen lassen, um gegebenenfalls Geschwindigkeitsprobleme zu finden. In einem konkreten Fall zeigt z.B. der Plan an, dass eine Tabelle in physikalischer Reihenfolge durchsucht wird. Dabei gibt es die Warnung "There is no existing Index matching the sort columns".
Wie der fehlende Indexschlüssel aussehen soll, wird leider nicht angezeigt und ich habe keinen blassen Schimmer, was da fehlt...
-
Hier mal das zu gehörige Statement. Zur Erklärung: es gibt eine Tabelle "Bestellungen" und eine Tabelle mit Ereignissen zu den Bestellungen. Ich möchte die Bestellungen inklusive dem Datum des letzten Ereignisses anzeigen.

Code: Alles auswählen

SELECT     BST.*,BSTH.Datum BSTHDatum
FROM       Bestellung BST
INNER JOIN BestellungEreignis BSTE ON BST.BSTId=BSTE.BSTId AND BSTE.BSTEId =
  ( SELECT TOP 1 BSTE.BSTEId
    FROM   BestellungEreignis BSTE
    WHERE  BSTE.BSTId=BST.BSTId
    ORDER BY BSTE.Datum DESC )
ORDER BY   BST.BestAufNr,BST.LfdNr,BST.BSTId;
Vielleicht hat ja jemand eine Idee, wie man das geschickter formulieren kann :-) .

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 651
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Geschwindigkeitsoptimierung von SQL-Statements beim ADS

Beitrag von nightcrawler »

ich würde solche Fragen nach http://devzone.advantagedatabase.com/forum posten. Dort liest der Chefentwickler der ADS SQL Schnittstelle mit.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Geschwindigkeitsoptimierung von SQL-Statements beim ADS

Beitrag von UliTs »

Danke für den Hinweis.
Leider reicht mein Englisch nicht aus, um herauszubekommen, was man machen muß, um dort eine Frage stellen zu können :( .
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 651
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Geschwindigkeitsoptimierung von SQL-Statements beim ADS

Beitrag von nightcrawler »

Du kannst Dich anmelden (Authentifizierung zB über ein Google-Konto), oder auch anonym eine Frage stellen. Einfach auf 'Ask a question' klicken und Frage (auf English) eingeben. Keine Bange, nicht jeder dort hat ein perfektes Englisch.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Geschwindigkeitsoptimierung von SQL-Statements beim ADS

Beitrag von UliTs »

Also ich habe es geschafft, Title, einen längeren Text und Tags einzugeben.
Aber dann...
Die vermutlich einzige Möglichkeit ist auf Login/Signup to Post zu klicken.

Dann kommt eine Seite "User Login" und da habe ich alles mögliche versucht, bin aber nicht weitergekommen :-( .

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten