where optimierung, index sql

18/03/2008 - 14:48 von Lars Eggert | Report spam
Moin,

kleine Frage zur Datenbankabfrage und deren Optimierung.

Wenn man mit einer Where Klausel im SQL Statement auf 2 Spalten filtert
(WHERE Column1 = x AND Column2 = y), welche Indizies werden benötigt?
Reicht je ein Index auf Column1 und einer auf Column2, oder benötigt man
einen kombinierten Index aus Column1 und Column2?

Falls einfache Indizes ausreichen .. kann vielleicht jmd. einen Fall
beschreiben, der einen kombinierten Index benötigt? Wie sàhe da eine SQL
Abfrage aus?

Danke schon mal, auch wenns nciht 100% C# ist :)

Grüße

Lars
 

Lesen sie die antworten

#1 Michael v. Fondern
18/03/2008 - 20:51 | Warnen spam
Hallo Lars,

Wenn man mit einer Where Klausel im SQL Statement auf 2 Spalten filtert
(WHERE Column1 = x AND Column2 = y), welche Indizies werden benötigt?



Damit es funktioniert: keiner. Indexe dienen nur dazu, Abfragen zu
beschleunigen. Sie werden nicht gebraucht, damit die Statements
funktionieren. Und ob du wirklich eine Beschleunigung erzielst, hàngt
sehr davon ab, wie der Befüllungsgrad der Tabelle ist, wieviele
verschiedene Werte jeweils in Column1, in Column2 oder in der
Kombination (Column1/Column2) auftauchen. Außerdem von dem, was für x
und y dort konkret steht. Und ganz nebenbei auch noch vom Datenbanksystem.

Reicht je ein Index auf Column1 und einer auf Column2, oder benötigt man
einen kombinierten Index aus Column1 und Column2?



Ob kein Index, ein einzelner Index, zwei einzelne Indexe oder ein
kombinierter Index bessere Performance bringt, hàngt ganz extrem von den
von den o.g. Faktoren ab, vor allem von der DB. Damit will ich sagen,
dass du das am besten für deinen konkreten Fall ausprobierst. Wenn du es
für eine bestimmte DB wissen willst, poste die Anfrage besser in einem
enstprechendem Forum für die jeweilige Datenbank.

Grüße

- Michael -

Ähnliche fragen