Thema: SQL Nachhilfe

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#14

AW: SQL Nachhilfe

  Alt 1. Feb 2024, 13:16
idx_ABFDok_ABFPosArtNr_Datum_Type_KundenNr ist ein Combi-Index, der genutzt wird, wenn im WHERE direkt auf alle Felder (ABFPosArtNr, ABFDocDatum, ABFDocType, ABFDocKundenNr) gerpft wird.

Hast du einen Index nur auf "ABFDocDatum", also CREATE INDEX idx_ABFDocDatum ON ABFDok (ABFDocDatum); (oder z.B. ABFDocDatum UNIQUE im CREATE TABLE), dann
* wird bei WHERE ABFDocDatum ... dieser Index benutzt
* aber nicht bei WHERE Year(ABFDocDatum) ...

Für Letzteres bräuchte man z.B. sowas CREATE INDEX idx_YearABFDocDatum ON ABFDok (Year(ABFDocDatum)); (falls Access sowas kann)



Und wie gesagt, kommt es teilweise auch auch auf die Art des Indize drauf an.
MySQL oder z.B. Postgres kennen unterschiedliche Typen (z.B. B-tree, hash, GiST, SP-GiST, GIN, and BRIN)

B-Tree ist heute oft gebräuchlich und auch für ein LIKE 'irgendwas*' geeignet, während HASH für ein LIKE absolut unnütz ist, aber für ein = mit langen Strings super wäre.
Und für LIKE '*sonstwas' wäre es besser, wenn der B-Tree rückwärts von hinten aufgebaut ist.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 1. Feb 2024 um 13:29 Uhr)
  Mit Zitat antworten Zitat