ADS tunen.
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
ADS tunen.
Hi,
wie ich bei einer anderen Aktion festellen mußte, kann ein veränderter Indexschlüssel enorme Geschwindigkeitszuwächse bringen. Das hat mich natürlich nachdenklich gemacht. Wie kann man denn beim ADS prüfen, oder testen, ob ein Indexschlüssel optimal ist, oder ob er verbessert werden kann?
wie ich bei einer anderen Aktion festellen mußte, kann ein veränderter Indexschlüssel enorme Geschwindigkeitszuwächse bringen. Das hat mich natürlich nachdenklich gemacht. Wie kann man denn beim ADS prüfen, oder testen, ob ein Indexschlüssel optimal ist, oder ob er verbessert werden kann?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Marcus Herz
- 1000 working lines a day
- Beiträge: 852
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 192 Mal
- Kontaktdaten:
Re: ADS tunen.
- SQL kann kein Index, in welchem Felder mit + verknüpft sind.
- Bei ADT gibt es die Rawkey Inices, verknüpft mit ;
- man kann im ARC ein SQL analaysieren und den Ausführungsweg anzeigen lassen
- Bei DBF wahrscheinlich je Feld, das als Referenz gebraucht wird, eineen Index anlegen
- ich habe irgendwann mich drauf festgelegt, Index Schlüssel nur für die Referenzierung anzulegen, nicht mehr für Anzeige Sortierung.
- Ansonst : ausprobieren
- Bei ADT gibt es die Rawkey Inices, verknüpft mit ;
- man kann im ARC ein SQL analaysieren und den Ausführungsweg anzeigen lassen
- Bei DBF wahrscheinlich je Feld, das als Referenz gebraucht wird, eineen Index anlegen
- ich habe irgendwann mich drauf festgelegt, Index Schlüssel nur für die Referenzierung anzulegen, nicht mehr für Anzeige Sortierung.
- Ansonst : ausprobieren
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: ADS tunen.
verstehe ich jetzt nicht. Ich habe den neuen Index mit + erweitert und danach ging es ab wie Schmitz Katze
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
-
- 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: ADS tunen.
Vermutlich kann der ADS dann doch auch mit "+" im Index klar kommen.
Du kannst aber auch alternativ als Test mal einzelne Indizes für die Felder KfzNr,Tankdatum,Tankzeit anlegen und prüfen, ob das auch schnell ist.
Prüfen kann man so etwas recht gut im Data Architekten (ARC). Da machst Du das SQL-Fenster auf, gibt z.B.
Code: Alles auswählen
select * from tankbuch
order by tankzeit
Da kann man sich übrigens bei aufwändigen SQL-Statements Tage mit beschäftigen .
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- nightcrawler
- 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: ADS tunen.
Bei DBF geht ein Index mit '+', bei ADT nicht mehr. Der ADS beginnt von vorne und sucht die Felder solange es noch passt, zB o.a. Index auf
wird für die Optimierung folgender SQL sehr wohl verwendet:
nicht verwendet wird der Index, wenn die Felder von vorne her nicht passen (kfznr fehlt inder Abfrage):
Zum Teil verwendet, wenn dazwischen das Feld fehlt (Optimierung nur auf kfznr):
Code: Alles auswählen
str(kfznr,9,0)+dtos(tankdatum)+tankzeit
Code: Alles auswählen
select * from tankbuch where kfznr=5;
select * from tankbuch where kfznr=5 and tankdatum='2020-10-30';
select * from tankbuch where tankdatum='2020-10-30' and kfznr=5;
select * from tankbuch where kfznr=5 and tankdatum='2020-10-30' and tankzeit='12:00';
Code: Alles auswählen
select * from tankbuch where tankdatum='2020-10-30';
select * from tankbuch where tankdatum='2020-10-30' and tankzeit='12:00';
select * from tankbuch where tankzeit='12:00';
Code: Alles auswählen
select * from tankbuch where kfznr=5 and tankzeit='12:00';
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: ADS tunen.
Hat das wirklich was mit dem ADS zu tun? Binärbaumindexe sind einfach schneller, wenn die Ausprägungen eindeutiger werden. Wenn ich eine Tabelle z.B. mit Log-Einträgen zu Kunden habe, und zu jedem Kunden laufen täglich Dutzende solcher Log-Einträge auf, und ich indexe nur mit der Kundennummer, plätte ich den Binärbaum jeden Tag ein bisschen mehr - die Suche muss langsam sein, weil ich eine große Menge gleicher Treffer habe, die repräsentiert sein wollen. Wenn ich das Datum hinzunehme, verringere ich diese Menge deutlich und gebe dem Baum mehr Stabilität. Das Optimum würde ich in diesem Fall erreichen, wenn ich aus dem Datum eine Timestamp bis runter zum Sekundenwert machen würde. Dann hätte ich nur ein-eindeutige Einträge, nehme ich an, und damit die optimale Situation für diese Art von Repräsentation. Oder liege ich jetzt völlig falsch? <grübel>
Herzlich,
Tom
Tom
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: ADS tunen.
Moin Tom,
Außer, dass breite Bäume auch nicht unbedingt optimal sind. Du willst ja eigentlich mit möglichst wenigen Schritten zum Ziel kommen
Viele Grüße,
Martin
nein, Du liegst nicht unbedingt falsch.
Außer, dass breite Bäume auch nicht unbedingt optimal sind. Du willst ja eigentlich mit möglichst wenigen Schritten zum Ziel kommen
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.