AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL optimimieren notwendig Max()
Thema durchsuchen
Ansicht
Themen-Optionen

SQL optimimieren notwendig Max()

Ein Thema von Dumpfbacke · begonnen am 17. Jan 2022 · letzter Beitrag vom 24. Jan 2022
 
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: SQL optimimieren notwendig Max()

  Alt 17. Jan 2022, 14:02
Danke für den Hinweis Holger.

Ich verstehe das ich es in Zukunft genauer beschrieben muss. Das mit dem Kopieren ist auch einfacher. Bei mir heißen die Felder hier noch Feld1 usw., da es nur der erste Test ist und ich die Daten mal so erhalten haben. Nicht schön aber selten.

Also das mit dem Feld 3 war ein Kopierfehler das habe ich zum testen mal geändert und dann genau kopiert für hier. Es muss beides mal mal <> sein. Ich habe es im ersten Post noch schnell geändert.

Nun zum Thema Index. Es liegt auf jedem Feld ein einzel Index also auf Feld1, Feld2 und Feld3. Wobei auf Feld1 auch noch ein DESCENDING Index liegt wegen dem Max. Auch der Kompi Index ist so angelegt, wie du geschrieben hast. Das habe ich anscheined unwissend schon richtig gemacht. man bin ich gut da mach ich mal was richtig und weiß es noch nicht einmal

Es wird hier der Kombi Index benutzt sowohl bei Deinen Select mit First als auch bei meinen mit max. Beides ist identisch und dauert 6 Sekunden.

Was mich hier halt so wundert ist das wenn ich mir die Daten komplett anzeigen lasse also alle 3 Zeilen das es ruck zuck da ist. Nur bei dem Max oder First dauert es so lange.

Was mir noch aufgefallen ist das wenn ist nicht den größten Wert sonden den kleinsten Wert haben möchte, so geht das auch Ruck Zuck, Also bei meinem an Stelle von max uf min änder oder bei Deinem des DESC weglasse.


Der Index wurde angelagt mit. CREATE DESCENDING INDEX TABELLE_ABSTEIGEND ON TABELLE1 (FELD2, FELD3, FELD1);


Feld 1 ist ein Datumsfeld und Feld2 und Feld 3 ein Varchar.

Falles es hier hilft mal die Daten


bei Max Wert

------ Performance info ------
Prepare time = 15ms
Execute time = 6s 579ms
Avg fetch time = 6.579,00 ms
Current memory = 90.467.880
Max memory = 228.991.144
Memory buffers = 1.024
Reads from disk to cache = 90.198
Writes from cache to disk = 0
Fetches from cache = 90.276


Bei min wert oder bein anzeigen der drei Zeilen

------ Performance info ------
Prepare time = 0ms
Execute time = 515ms
Avg fetch time = 515,00 ms
Current memory = 90.467.424
Max memory = 228.991.144
Memory buffers = 1.024
Reads from disk to cache = 6.878
Writes from cache to disk = 0
Fetches from cache = 6.883

Wenn Du noch was benötigst sag einfach bescheid den ch verstehe das ganze eh nicht mehr.

Dane
Tanja

Geändert von Dumpfbacke (17. Jan 2022 um 14:08 Uhr)
  Mit Zitat antworten Zitat
 


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 01:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz