Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Problem mit SQL Server 2005 Memory Pressure und tempdb-Schreibvorgängen

Eine hohe Festplattenwarteschlangenlänge bedeutet nicht, dass Sie einen E/A-Engpass haben, wenn Sie ein SAN oder NAS haben, Sie sollten sich vielleicht andere zusätzliche Leistungsindikatoren ansehen. Sehen Sie sich SQL Server Urban an Legenden besprochen für weitere Details.

1:Die folgenden Operationen verwenden stark tempdb

  • Wiederholtes Erstellen und Löschen von temporären Tabellen (lokal oder global)
  • Tabellenvariablen, die tempdb für Speicherzwecke verwenden
  • Mit CURSORS verknüpfte Arbeitstabellen
  • Arbeitstabellen, die einer ORDER BY-Klausel zugeordnet sind
  • Arbeitstabellen, die einer GROUP BY-Klausel zugeordnet sind
  • Mit HASH-PLÄNEN verknüpfte Arbeitsdateien

Diese Features von SQL Server 2005 verwenden tempdb ebenfalls stark:

  • Versionierung auf Zeilenebene (Snapshot-Isolation)
  • Wiederherstellung des Online-Index

Wie in anderen SO-Antworten erwähnt, lesen Sie diesen Artikel zu Best Practices zur Steigerung der tempdb-Leistung.

2:Ein Blick auf die Menge an freiem RAM auf dem Server, d. h. ein Blick auf den WMI-Zähler Speicher->Verfügbare MB, hilft nicht, da SQL Server Datenseiten zwischenspeichert im RAM, so dass jeder DB-Server, der lange genug läuft, wenig freien RAM haben wird.
Die Zähler, die Sie sich ansehen sollten, sind aussagekräftiger, um Ihnen zu sagen, ob das Hinzufügen von RAM zum Server hilft, sind:
SQL Server-Instanz:Buffer Manager->Seitenlebenserwartung (in Sekunden) Ein Wert unter 300-400 Sekunden bedeutet, dass Seiten nicht sehr lange im Speicher sind und Daten kontinuierlich von Festplatten eingelesen werden. Server mit geringer Seitenlebensdauer profitieren von zusätzlichem RAM.
und
SQL Server Instance:Buffer Manager->Buffer Cache Hit Ratio Dies gibt Ihnen den Prozentsatz der Seiten an, die aus dem RAM gelesen wurden und nicht von der Festplatte gelesen werden mussten. Eine Cache-Trefferquote von weniger als 85 bedeutet, dass der Server von zusätzlichem RAM profitiert

3 :Ja, hier kann man nichts falsch machen. Es wird empfohlen, tempdb auf einem separaten Satz von Datenträgern zu haben. Sehen Sie sich diesen KB-Artikel an unter der Überschrift:Verschieben der tempdb-Datenbank, wie man das macht.