hugi1987
Goto Top

MSSQL Server 2005 - temporäre Hänger

Hallo,

wir verwenden aktuell eine Applikation (Ticketsystem), welche auf eine Datenbank zugreift.
Diese DB ist mittlerweile ca. 145 GB groß und läuft auf einem MSSQL Server 2005 Standard.
Alle Server sind dabei virtuell und der Speicher wird über ein SAN bereitgestellt.

Nun haben wir seit ein paar Tagen das Problem, dass immer wieder Performanceschwierigkeiten in der Anwendung auftreten.
Das Problem scheint vom Verhalten her eher DB-seitig zu sein.
Die Performancevorfälle sind dabei nicht genau zu lokalisieren und treten immer wieder temporär für einige Sekunden auf.
Eine Datenbankintegritätsprüfung führte zu keinen Fehlern.

Nun weiß ich, dass es im MSSQL Server die Möglichkeit gibt, die Indexe über einen Wartungsjob neu zu organisieren.
Habt jemand Erfahrungen damit und kann mir dies empfehlen? Wie kritisch ist dies? Alternativ könnte man die Indexe auch neu erstellen. Könnt ihr mir auch darüber Erfahrungen berichten?

Oder habt ihr mir noch weitere Tipps?

Danke euch vielmals für eure Unterstützung face-smile

Gruß Hugi

Content-ID: 180969

Url: https://administrator.de/contentid/180969

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

amax2000
amax2000 23.02.2012 um 16:53:38 Uhr
Goto Top
Hi Hugi,

eine Indexdefragmentierung reicht in der Regel und sollte je nach Applikation als Task häufiger oder seltener ausgeführt werden.

Bei 145 GB tippe ich auch darauf, daß die Datenbak fragmentiert auf dem Speicher liegt. Häufig werden in den Datenbankeinstellungen zur Expansion die default Einstellungen nicht verändert, was dazu führt, daß die DB scheibchenweise auf der Platte verteilt ist und somit der Kopf immer hin und her muß. Generell ist auch die Plattenperformance wichtig, daß wird bei Virtualisierung häufig zum Problem; aber die DB liegt extern, oder? Zusätzlich wegen der 145 GB: ist bei der DB die Massenprotokollierung eiingeschaltet?

Kannst Du im Windowseigenen Defrag-Tool überprüfen.

VG


amax
Hugi1987
Hugi1987 23.02.2012 um 17:32:10 Uhr
Goto Top
Hi amax,

eine Indexdefragmentierung wird aktuell bereits mit einem Fragwert von 30 durchgeführt.
Die Datenbank liegt ja als eine .mdf Datei auf einer eigenen Partition, von dem her denke ich nicht dass auf der Kopf viel hin und her geschrieben muss.
Ja die DB liegt extern auf einem externen SAN Speichermedium.

Was meinst du mit Massenprotokollierung bzw. was macht diese Funktion genau? Wo kann man diese Funktion genau im SQLSERVER finden?
Die Transactionlog wird jedenfalls stündlich gesichert.

Gibt es noch weitere generelle Performancetipps für SQLSERVER?

Vielen DAnk
amax2000
amax2000 23.02.2012 um 18:28:35 Uhr
Goto Top
Hi Hugi,

findest Du unter DB --> Eigenschaften --> Optionen. Wenn Ihr eh die TRN wegsichert ist bei der Prokollierung aus meiner Sicht weniger eher mehr.

Ansonsten fallen mir noch in den Servereigenschaften die Arbeitsspeichereinstellungen ein, die per Default unsinnig ausgeliefert werden (Min/Max Speicher und Speicher für Abfragen). Und generelll natürlich RAM, RAM, RAM...
Virenscannerkonfig usw. sollte ja eh klar sein...Komprimierung von Datenbanken ist auch nicht empfehlenswert.
Oft hängt es auch einfach an der Programmierung der Applikationen, die Abfragen unsauber/unperformant absetzen.

VG


amax