Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Index auf Feld mit zwei werten?

  Alt 22. Mär 2006, 14:53
Zitat von shmia:
Zitat von Karstadt:
Arbeite mit eine tabelle die 10.000 ds hat. ist das sinnvoll einen Inden zu setzen auf einen feld der nur zwei werte annehmen kann?
Das ist nicht sinnvoll.
Der Indexbaum hat dann nur 2 "Hauptäste" und der Server verplempert viel Zeit den Index auzugrasen und mit der Tabelle zu "verquicken".
Aus diesem Grund kann beim MS SQL Server auch kein Index auf ein bit-Feld gelegt werden.

"Gerade wenn du viele Datensätze mit nur wenig möglichen Werten hast machen sich Indizes besinders schnell bemerkbar."
Genau das Gegenteil ist der Fall: ein Index mit einer 50% Wahrscheinlichkeit liefert die Hälfte
der Ausgangsmenge; das bringt nix, da wäre ein Full-Table-Scan schneller.

Ein Index, der nur eine sehr geringe Trefferwahrscheinlichkeit hat, liefert wenige Datensätze, das lohnt sich.
Absolut richitg, ich hatte die Frage nur überflogen und reflexartig geantwortet.
Bei 2 Werten ist es natürlich wesentlich aufwendiger von Index zurück auf die Daten zu springen.
Als Filterkriterium ist das aber eigentlich schon schnieke, wenn du die Details eines Parent Recs abfragen willst (z.B.: 10.000 Details von 300 Parents). Nur bei 2 ist das ein wenig,... nunja.
Es ist nicht sinnlos[1], aber auch nicht sehr sinnvoll.
Sorry, falls ich durch meine vorschnelle, dämliche Antwort irgendwelche Mehrarbeit bewirkt habe.

[1] "Wieviele haben 1? Wieviele 2?" Sollte sehr schnell abfragbar sein.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat