Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.017 Beiträge
 
Delphi 2009 Professional
 
#10

AW: [SQL] Wie Gruppensumme bilden?

  Alt 3. Mär 2021, 22:37
Wenn es so lange läuft, wird der Index nicht genutzt. Der dient je gerade dazu, die Komplexität logarithmisch zu begrenzen.

Ein paar Ideen, je nachdem, was dein DBMS kann:
  • Hast du überhaupt einen Index auf ArtikelNr?
  • Führe im JOIN einen Linksvergleich mit LIKE aus (setzt Index auf ArtikelNr voraus):
    Code:
    LEFT OUTER JOIN VorgangPos vp2 ON vp2.ArtikelNr LIKE substring(vp.ArtikelNr from 1 for 5) || '%'
    (Ich hab keine Ahnung, was in deinem DBMS der Konkatenationsoperator ist. Da hat jedes seinen eigenen, Doppelpipe ist einfach der SQL-Standard, an den sich fast niemand hält.)
  • LEFT statt SUBSTRING benutzen.
  • Index auf eine berechnete Spalte mit dem Vergleichswert setzen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat