Select über eine Tabelle mit Primary SQL 2005

03/04/2008 - 22:10 von Walter Radke | Report spam
Hallo Newsgroup,

ein Select über mehrere Tabellen mit verschiedenen Spalten wird langsam,
wenn die Spalte in der Whereklausel den Primarykey oder eindeutig indiziert
ist hat.
z.B. Tabelle Artikel Spalte Artikelnummer hat den Primary, Spalte
Bezeichnung hat einen auf- und absteigenden Index
Select * from Artikel where Artikelnummer = 'A 001' ist dann langsamer als
Select * from Artikel where Bezeichnung = 'Artikel 001'
Bei ca. 200 000 Datensàtzen 8 - 10s Unterschied.
Das Select über die verschiedenen Tabellen und einer View ist natürlich
etwas komplizierter.
Hat die Artikelnummer nur einen einfachen Index (geht natürlich nicht wegen
Duplikaten) ist die Geschwindigkeit der Selects gleich.
Habt ihr eine Erklàrung für dieses Verhalten?

Vielen Dank

MfG Walter Radke
 

Lesen sie die antworten

#1 Hannes Brunner
03/04/2008 - 22:52 | Warnen spam
Hallo Walter,

Walter Radke schrieb:
Hallo Newsgroup,

ein Select über mehrere Tabellen mit verschiedenen Spalten wird langsam,
wenn die Spalte in der Whereklausel den Primarykey oder eindeutig indiziert
ist hat.
z.B. Tabelle Artikel Spalte Artikelnummer hat den Primary, Spalte
Bezeichnung hat einen auf- und absteigenden Index



Auf- _und_ absteigenden Index über eine Spalte? Das ist doch Unsinn.

Select * from Artikel where Artikelnummer = 'A 001' ist dann langsamer als
Select * from Artikel where Bezeichnung = 'Artikel 001'



Entscheidend ist nicht der Primary, sondern der clustered Index.

Bei ca. 200 000 Datensàtzen 8 - 10s Unterschied.
Das Select über die verschiedenen Tabellen und einer View ist natürlich
etwas komplizierter.
Hat die Artikelnummer nur einen einfachen Index (geht natürlich nicht wegen
Duplikaten) ist die Geschwindigkeit der Selects gleich.



Hmm einfach = eindeutig?

Habt ihr eine Erklàrung für dieses Verhalten?



Solange du uns nicht verràtst wie jeweils der clustered Index aussieht
kann man da nur spekulieren.

Gruß
Hannes

Ähnliche fragen