Performance bei "hohen" Nummern

28/08/2008 - 16:38 von Ingo Stiller | Report spam
Guude

Wir haben hier ein dubioses Performanceproblem und sind nicht sicher
ob unsere Anwendung oder der SQL-Server das Problem hat.

Stellt euch eine kleinere Tabelle mit rund 70 Millionen Sàtzen vor :-)
Der Primary-Key ist ein zusammengesetzter Schlüssel aus verschiedenen
Nummern und Strings.

Wir greifen (bedingt durch die Anwendung und Fachlichkeit) wàhrend
eines grossen Laufens in kleineren Pàckchen auf die große Tabelle zu.

Nun haben wir festgestellt, dass die Zugriffe auf die große Tabelle
immer langsamer werden, je weiter wir in den Schlüsseln
voranschreiten. Dieser Effekt tritt auch auf, wenn man gleich auf den
'hohen' Nummern aufsetzt. Also scheint es so zu sein, dass der Server
irgendwie sequentiell auf die Sàtze zugreift und damit bei den hohen
Nummern eben làngern braucht.
Bevor jetzt jemand kommt, verwendet doch Indices, die haben wir im
Einsatz und der Query-Analyzer zeigt auch dessen Verwendung an.
Ist es bekannt, dass bei MS-SQL bei Schlüsseln im hinteren Bereich ein
Performanceproblem auftritt. Eine Vemutung wàren die Statistiken
(welche up-to-date sind), welche vielleicht beim Prepare squentiell
durchgegangen werden.

Irgend eine Idee, woran es (noch) liegen kann.
Es geht auch erstmal nicht um die "Fehlerbehebung", sonder darum,
woran dieses Verhalten liegen kann. Wenn wir das verstehen, könne wir
(vielleicht) entsprechend gegensteuern)

Gruß Ingo
 

Lesen sie die antworten

#1 Frank Kalis
28/08/2008 - 16:49 | Warnen spam
On 28 Aug., 16:38, Ingo Stiller wrote:

Wir haben hier ein dubioses Performanceproblem und sind nicht sicher
ob unsere Anwendung oder der SQL-Server das Problem hat.

Stellt euch eine kleinere Tabelle mit rund 70 Millionen Sàtzen vor :-)
Der Primary-Key ist ein zusammengesetzter Schlüssel aus verschiedenen
Nummern und Strings.

Wir greifen (bedingt durch die Anwendung und Fachlichkeit) wàhrend
eines grossen Laufens in kleineren Pàckchen auf die große Tabelle zu.

Nun haben wir festgestellt, dass die Zugriffe auf die große Tabelle
immer langsamer werden, je weiter wir in den Schlüsseln
voranschreiten. Dieser Effekt tritt auch auf, wenn man gleich auf den
'hohen' Nummern aufsetzt. Also scheint es so zu sein, dass der Server
irgendwie sequentiell auf die Sàtze zugreift und damit bei den hohen
Nummern eben làngern braucht.
Bevor jetzt jemand kommt, verwendet doch Indices, die haben wir im
Einsatz und der Query-Analyzer zeigt auch dessen Verwendung an.
Ist es bekannt, dass bei MS-SQL bei Schlüsseln im hinteren Bereich ein
Performanceproblem auftritt. Eine Vemutung wàren die Statistiken
(welche up-to-date sind), welche vielleicht beim Prepare squentiell
durchgegangen werden.

Irgend eine Idee, woran es (noch) liegen kann.
Es geht auch erstmal nicht um die "Fehlerbehebung", sonder darum,
woran dieses Verhalten liegen kann. Wenn wir das verstehen, könne wir
(vielleicht) entsprechend gegensteuern)




Du gibst nicht gar viele Informationen preis. Wie wàre es wenn Du mal
die Struktur der Tabelle, die vorhandenen Indizes, die Abfrage und den
Ausführungsplan postest, damit man nicht allzusehr im Dunkeln tappt?
Frank Kalis
Microsoft SQL Server MVP
Webmaster: http://www.insidesql.org

Ähnliche fragen