Gewusst wie: Auslagerungen Puffer Poolspeicher in der 64-Bit-Version von SQL Server zu verringern

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 918483 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Microsoft SQL Server führt dynamische Speicherverwaltung basierend auf der aktuellen Auslastung und Aktivitäten auf dem System die Speicheranforderungen. Auf einem Windows Server 2003 oder ein Windows XP oder spätere Version System können SQL Server die Arbeitsspeicher Benachrichtigungsmechanismen, die von der QueryMemoryResourceNotification-Windows-API bereitgestellt werden. Auf einem Microsoft Windows 2000 Server-basierten System berechnet SQL Server in regelmäßigen Abständen den freien physischen Speicher auf dem System unter Verwendung der systemeigenen Windows-API. Basierend auf diesen Informationen aus der QueryMemoryResourceNotification-Windows-API oder aus der Berechnung der Speicher, reagiert SQL Server auf die aktuelle Situation der Speicher auf einem bestimmten System. Dies bietet die folgenden Vorteile:
  • Das System ist nicht, das Workingset des Prozesses SQL Server-Seite.
  • Die erforderlichen Datenbankseiten stehen im Arbeitsspeicher um physische e/a-Anforderungen zu reduzieren.
Weitere Informationen finden Sie unter dem Thema "Dynamic Memory Management" und unter dem Thema "Serverarbeitsspeicher-Optionen" in der SQL Server-Onlinedokumentation.

Problembeschreibung

In 64-Bit-Editionen von SQL Server können verschiedene Probleme auftreten. Beispielsweise können die folgenden Probleme auftreten:
  • Die Leistung von SQL Server wird plötzlich verringert.
  • Ein Computer mit SQL Server für kurze Zeit reagiert.
  • Timeout für Anwendungen, die mit SQL Server verbunden.
  • Probleme auftreten, wenn Sie selbst einfache Befehle ausführen oder Anwendungen auf dem System verwenden.
Wenn Sie SQL Server 2005 Service Pack 2 (SP2) oder höher installiert haben, ist eine der folgenden Fehlermeldungen im SQL Server-Fehlerprotokoll protokolliert, wenn diese Probleme auftreten:
Fehlermeldung 1
Datumuhrzeit spid1s A bedeutenden Teil des Sql Server-Prozessspeicher hat ausgelagert wurde. Dies kann zu Leistungseinbußen führen. Dauer: 0 Sekunden. Arbeitsseiten (KB): 1086400, ein Commit (KB): 2160928, Speichernutzung: 50 %.
Fehlermeldung 2
Datumuhrzeit spid1s A bedeutenden Teil des Sql Server-Prozessspeicher hat ausgelagert wurde. Dies kann zu Leistungseinbußen führen. Dauer: 315 Sekunden. Arbeitsseiten (KB): 410156, ein Commit (KB): 2201296, Speichernutzung: 18 %.
Fehlermeldung 3
Datumuhrzeit spid1s A bedeutenden Teil des Sql Server-Prozessspeicher hat ausgelagert wurde. Dies kann zu Leistungseinbußen führen. Dauer: 646 Sekunden. Arbeitsseiten (KB): 901904, ein Commit (KB): 2215752, Speicher-Auslastung: 40 %.

Microsoft SQL Server-Support-Team hat auch beobachtet, zusätzlichen Fehlermeldungen oder Warnungen, die im SQL Server-Fehlerprotokoll oder in den Windows-Ereignisprotokollen aufgezeichnet werden. Diese Meldungen wie die folgenden aussehen:
2009-05-05 15:43:56.01 Server      Resource Monitor (0x13c43) Worker 0x0412C1E8 appears to be non-yielding on Node 0. Memory freed: 34152 KB. Approx CPU Used: kernel 171 ms, user 140 ms, Interval: 125093.

2009-05-05 12:54:52.18 Server      * *******************************************************************************
2009-05-05 12:54:52.18 Server      * BEGIN STACK DUMP:
2009-05-05 12:54:52.18 Server      *   05/05/08 12:54:52 spid 0
2009-05-05 12:54:52.18 Server      * Non-yielding Resource Monitor
2009-05-05 12:54:52.18 Server      * *******************************************************************************

2009-06-10 09:13:53.44 Server      * *******************************************************************************
2009-06-10 09:13:53.44 Server      * BEGIN STACK DUMP:
2009-06-10 09:13:53.44 Server      *   06/10/09 09:13:53 spid 0
2009-06-10 09:13:53.44 Server      * Non-yielding IOCP Listener
2009-06-10 09:13:53.44 Server      * *******************************************************************************

2009-06-10 09:13:55.85 spid2s      LazyWriter: warning, no free buffers found.

2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) is marked for unload due to memory pressure.
2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) unloaded.

2009-07-15 13:37:51.42 Logon       Error: 17189, Severity: 16, State: 1.
2009-07-15 13:37:51.42 Logon       SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems. [CLIENT: xx.xxx.xx.xx]

Event Type:	Error
Event Source:	SQLBrowser
Event ID:	8
Description: The SQLBrowser service was unable to process a client request. 
Diese zusätzlichen Fehlermeldungen oder Warnungen erscheinen zusammen mit dem Fehler "ein bedeutenden Teil des Sql Server-Prozessspeicher hat ausgelagert wurde" angezeigt. In den folgenden Fällen diese zusätzlichen Fehlermeldungen oder Warnungen nicht zusammen mit der Fehlermeldung angezeigt.

Wenn Sie eine der folgenden Fehlermeldungen oder Warnungen bemerken, sollten Sie die SQL Server-working Set Paging, das in diesem Artikel als eine mögliche Ursache aber nicht als einzige Ursache erläutert wird. Aufgrund der verschiedenen anderen Bedingungen oder Ursachen konnte diese zusätzlichen Fehlermeldungen oder Warnungen protokolliert werden.

Ursache

Dieses Problem tritt auf, weil die Webseiten der Windows-Betriebssystem das Workingset des Prozesses SQL Server heraus.

Diese Fehlermeldungen werden protokolliert, wenn die Arbeitsseiten eines Prozesses SQL Server 50 Prozent oder weniger Speicher, für die ein Commit an den SQL Server-Prozess ausgeführt wird. Diese Fehlermeldungen können Sie die Anfrage bestimmen, in der SQL Server-Leistung erheblich verringert, da die Webseiten der Windows-Betriebssystem das Workingset des Prozesses SQL Server out. Diese Fehlermeldungen werden darüber hinaus alle 5 Minuten während der ersten 30 Minuten protokolliert. Verdoppelt sich die Häufigkeit dieser Fehlermeldungen nach 30 Minuten bis die Häufigkeit der bis zu einem Tag erreicht.

Wenn dieses Problem auftritt, stellen Sie möglicherweise fest, dass das Workingset von anderen Anwendungen auf dem System auch ungefähr zur selben Zeit ausgelagert wird.
Weitere Informationen finden Sie auf der folgenden Microsoft-Website:
http://blogs.msdn.com/psssql/archive/2007/05/31/the-SQL-Server-Working-Set-Message.aspx
Darüber hinaus besteht ein bekanntes Problem in SQL Server, in der eine Instanz dieser Fehlermeldung wird möglicherweise angezeigt. Die Fehlermeldung wird beim Starten von SQL Server im SQL Server-Fehlerprotokoll protokolliert. Die Fehlermeldung möglicherweise eine falsche Warnung. Es kann daher nicht, dass Trimmen der Arbeitsseiten tatsächlich aufgetreten ist. Weitere Informationen finden Sie auf der folgenden Microsoft-Website:
http://blogs.msdn.com/psssql/archive/2009/05/12/SQL-Server-Reports-Working-Set-Trim-Warning-Message-During-Early-Startup-Phase.aspx

Abhilfe

Bevor Sie versuchen, dieses Problem zu umgehen, führen Sie die Schritte im Abschnitt "Problembehandlung", um dieses Problem zu beheben.

Wenn dieses Problem weiterhin auftritt, können Sie verhindern das Windows-Betriebssystem Sie des SQL Server-Prozesses wird der Puffer Poolspeicher ausgelagert werden durch das Sperren des Speichers, der für den Pufferpool im physischen Speicher zugeordnet wird. Sperren Sie den Speicher durch Zuweisen von das Benutzerrecht Seiten im Speicher sperren für das Benutzerkonto, das als Startkonto des SQL Server-Dienstes verwendet wird.

Hinweis Für 64-Bit-Editionen von SQL Server können nur SQL Server Enterprise Edition den Benutzer Seiten im Speicher sperren nach rechts. Dies gilt für SQL Server 2005 [RTM, SP1, SP2, SP3] und SQL Server 2008 [RTM und SP1]. SQL Server 2008 SP1 Kumulatives Update 2 und SQL Server 2005 SP3 Kumulatives Update 4, bieten Unterstützung für SQL Server Standard Edition den Benutzer Sperren von Seiten im Speicher direkt verwenden. Weitere Informationen zur Unterstützung von gesperrten Seiten auf 64-Bit-Systemen klicken Sie auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
970070 Unterstützung für gesperrt auf SQL Server 2005 Standard Edition 64-Bit-Systemen und auf SQL Server 2008 Standard Edition 64-Bit-Systeme
Das Benutzerrecht Seiten im Speicher sperren zuzuweisen, gehen Sie folgendermaßen vor:
  1. Klicken Sie auf Start, klicken Sie auf Ausführen, geben "gpedit.msc", und klicken Sie dann auf OK.

    Hinweis Das Dialogfeld "Gruppenrichtlinie " wird angezeigt.
  2. Erweitern Sie Computerkonfiguration, und erweitern Sie dann Windows-Einstellungen.
  3. Erweitern Sie Sicherheitseinstellungen, und erweitern Sie dannLokale Richtlinien.
  4. Klicken Sie auf Zuweisen von Benutzerrechten, und doppelklicken Sie anschließend auf Sperre Seiten Inmemory.
  5. Klicken Sie im Dialogfeld Lokale Sicherheitsrichtlinieauf Benutzer oder Gruppe hinzufügen.
  6. Fügen Sie das Konto mit der Berechtigung zum Ausführen der Datei Sqlservr.exe, und klicken Sie aufOK, klicken Sie im Dialogfeld Benutzer oder Gruppen auswählen .
  7. Schließen Sie das Dialogfeld Gruppenrichtlinie .
  8. Starten Sie den SQL Server-Dienst neu.
Nach dem zuweisen wird das Benutzerrecht Seiten im Speicher sperren und Sie den SQL Server-Dienst neu starten, Windows-Betriebssystems nicht mehr Seiten außerhalb der Puffer Poolspeicher innerhalb der SQL Server-Prozess. Das Windows-Betriebssystem können jedoch weiterhin außerhalb der Nonbuffer Poolspeicher innerhalb des SQL Server-Prozesses Seite.

Sie können überprüfen, ob das Benutzerrecht durch die Instanz von SQL Server verwendet wird, indem sichergestellt wird, dass die folgende Meldung in das Fehlerprotokoll von SQL Server beim Start geschrieben ist:
Verwenden gesperrter Seiten für den Pufferpool
Diese Meldung bezieht sich nur auf 64-Bit-Editionen von SQL hat weitere Informationen zu dieser Meldung in das Fehlerprotokoll, finden Sie auf der folgenden Microsoft-Website:
http://blogs.msdn.com/psssql/archive/2007/10/18/Do-i-have-to-Assign-the-Lock-Privilege-for-Local-System.aspx
Wenn-Speicher-Pools Nonbuffer Seiten der Windows-Betriebssystem Out können Performance-Probleme weiterhin auftreten. Die im Abschnitt "Problembeschreibung" aufgeführten Fehlermeldungen werden jedoch nicht im SQL Server-Fehlerprotokoll protokolliert. Dieses Verhalten tritt auf, weil die Arbeitsseiten eines Prozesses SQL Server in der Regel nicht 50 Prozent erreichen oder weniger des reservierten Speichers.

Weitere Informationen

Wie Sie dieses Problem zu beheben

Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:
  1. Um bekannte Probleme zu beheben, die dazu führen, das Windows-Betriebssystem zur Seite, das Workingset des Prozesses dass SQL Server wenden Sie an, die in den folgenden Artikeln der Microsoft Knowledge Base beschriebenen Hotfixes.

    Hinweis Hotfixes sind kumulativ. Eine spätere Version eines Updates enthält die früheren Versionen dieses Hotfixes.
    • Microsoft hat ein Problem festgestellt, die die 64-Bit-Edition von der SQL Server-Arbeitsseiten gekürzt werden zur Folge haben kann. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
      905865 Die Größen der Arbeitssätze aller Prozesse in einer Konsolensitzung werden möglicherweise gekürzt, wenn Sie Terminaldienste verwenden, um an- oder Abmelden von einem Computer, auf dem Windows Server 2003 ausgeführt wird
    • Computer mit Windows Server 2003 können zu aggressiv sein, wenn sie modifizierte Puffern zwischenspeichern, falls Sie eine Anwendung ausführen gepufferten e/a, z. B. einem Kopiervorgang. Dieses Verhalten kann in SQL Server getrimmt werden die Arbeitsseiten führen. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
      920739 Eine Abnahme der Gesamtleistung des Systems kann auftreten, wenn Sie Dateien kopieren, die größer als ca. 500 MB in Windows Server 2003 SP1 oder Windows Server 2003 SP1
    • Das Workingset der SQL Server möglicherweise gekürzt werden, wenn das System einige erweiterten TCP-Funktionen verwendet werden. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
      942861 Fehlermeldung, wenn eine Anwendung mit SQL Server auf einem Server verbindet, auf dem Windows Server 2003 ausgeführt wird: "Allgemeiner Netzwerkfehler", "Kommunikations-Verbindungsfehler" oder "Ein Übertragungsfehler"
    • Auf einen Multiprozessor-Computer, auf dem Windows Server 2003 ausgeführt wird, kann der System-Prozess die meisten der verfügbaren Arbeitsspeicher des Systems verwenden. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
      942486 Der System-Prozess verbraucht möglicherweise die meisten der verfügbaren Arbeitsspeicher des Systems auf einen Multiprozessor-Computer, auf dem Windows Server 2003 ausgeführt wird
  2. Wenn ein Gerätetreiber verwendet die MmAllocateContiguousMemory Funktion, und setzt den Wert der HighestAcceptableAddress Parameter kleiner als 4 Gigabyte (GB), kann das Windows-Betriebssystem, das Workingset des Prozesses SQL Server 64-Bit-Seite. Um dieses Problem zu beheben, wenden Sie sich an der Hersteller des Gerätetreibers, nach Treiberaktualisierungen. Eine Liste der Treiber, die Probleme haben, finden Sie im Abschnitt "andere Anbieter" im folgenden Artikel der Microsoft Knowledge Base:
    2121098 Empfohlene Betriebssystem-Updates und Treibern für SQL Server-Installationen
  3. Wenden Sie Sie, nachdem Sie diese Hotfixes gelten weiterhin diese Probleme auftreten, einen Windows-Hotfix, der die Anzahl von Kürzungsoperationen pro Prozess beschränkt. Für weitere Informationen klicken Sie auf die folgenden Artikelnummern, um die Artikel der Microsoft Knowledge Base anzusehen:
    938486 Ein Windows Server 2003-Computer reagiert nicht mehr wegen eines Speicher-Manager trimmen-Vorgangs, das von einem unbestimmten Modul verursacht wird, die viel Speicher anfordert
    956341 Ein Windows Server 2003-Computer reagiert nicht mehr wegen einer großen Speicherreservierungsanforderung
    Wenn ein Gerätetreiber versucht, Speicher, kann das Windows-Betriebssystem, das Workingset von anderen Anwendungen Seite. Dieser Hotfix Windows können Sie die Ereignisablaufverfolgung verwenden, um den Treiber zu suchen, der Problem verursacht. Weitere Informationen zu den jeweiligen Treiber, bei dem die Working Set Verhalten, finden Sie im MSDN-Artikel"Treiber identifizieren, die zusammenhängenden Speicher reservieren."
  4. Anwendungen können den Systemcache zu viel nutzen und können dazu führen, dass der Systemcache schnell wächst. Zum Antworten auf das Wachstum der Systemcache out Systemseiten das Workingset des Prozesses SQL Server oder von anderen Anwendungen. Wenn dieses Problem auftritt, können Sie einige Funktionen der Speicherverwaltung in der Anwendung. Diese Funktionen Steuern der System-Cachespeicher, die Datei-e/a-Vorgänge in der Anwendung verwenden können. Beispielsweise können Sie die SetSystemFileCacheSize Funktion und die GetSystemFileCacheSize Funktion der Cachespeicher des Systems zu steuern, die e/a-Vorgänge verwenden können.

    Das Leistungsobjekt Speicher können Sie hier die Werte verschiedener Leistungsindikatoren in diesem Objekt zu bestimmen, ob der Arbeitsseiten Systemcache zu viel Arbeitsspeicher verwendet. Beispielsweise können Sie die Leistungsindikatoren Cache Bytes und Systemcache: Residente Bytes anzeigen. Weitere Informationen zu diesem Thema finden Sie auf der folgenden Microsoft-Websites:
    http://blogs.msdn.com/NTDebugging/archive/2007/11/27/Too-much-Cache.aspx

    http://blogs.msdn.com/NTDebugging/archive/2009/02/06/Microsoft-Windows-Dynamic-Cache-Service.aspx

    http://support.Microsoft.com/default.aspx?scid=KB;EN-US; 976618
    Sie können herunterladen und Bereitstellen von "Microsoft Windows Dynamic Cache Service" Speicher gesteuert, der in den Systemcache verwendet wird.
  5. Wenn SQL Server zusammen mit SAP R/3 ausgeführt wird, kann ein Paging Problem auftreten. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    931308 Erhöhtem Paging auf die Festplatte kann auftreten, wenn Sie auf einem Windows Server 2003-Computer ein SAP R/3 Programm ausführen
  6. Wenn Sie SQL Server unter Windows Server 2008 ausführen, müssen Sie Updates für bekannte Probleme anwenden, die zu arbeiten Satz trimmen oder unnötige eine übermäßige Arbeitsspeicherauslastung durch andere Komponenten des Betriebssystems führen kann. Für weitere Informationen klicken Sie auf die folgenden Artikelnummern, um die Artikel der Microsoft Knowledge Base anzusehen:

    971442 Die Systemleistung des Servers wird stark verringert wird, wenn Sie versuchen, Dateien von einem Server mit Windows Vista oder Windows Server 2008 über ein Netzwerk kopieren

    974609 Ein Computer mit Windows Server 2008 nach dem Zufallsprinzip reagiert nicht mehr, wenn Sie eine umfangreiche Anwendung ausführen

    971714 Die Berichtsgenerierung reagiert nicht mehr, wenn Sie Perfmon.exe mit der Active Directory-Diagnose-Vorlage zum Generieren eines Berichts auf einem Windows Server 2008-basierten Domänencontroller ausführen
  7. Wenn Sie SQL Server unter Windows dienen 2008 R2 ausführen, müssen Sie Updates für bekannte Probleme anwenden, die zur working Set trimmen führen kann. Weitere Informationen finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
    979149 Ein Computer mit Windows 7 oder Windows Server 2008 R2 reagiert nicht mehr, wenn Sie eine umfangreiche Anwendung ausführen

    2155311 Eine schlechte Leistung tritt auf einem Computer, der NUMA-Prozessoren, wird Windows Server 2008 R2 oder Windows 7 ausführen, wenn ein Thread Anforderungen sehr viel Speicher, der innerhalb der ersten 4 GB des Speichers

    2468345 Computer zeitweise funktioniert nicht korrekt oder nicht mehr reagiert, wenn der Storport-Treiber in Windows Server 2008 R2 verwendet wird

Wie Sie feststellen können, mit der 64-Bit-Editionen von SQL Server Speicher

Systemmonitor können Sie die Speicherseite anzeigen, die indem Sie 64-Bit-Editionen von SQL Server verwendet wird. Zu diesem Zweck den folgenden Leistungsindikator zu überwachen:
Datenobjekt: Speicher
Indikator: Seiten/s
Weitere Informationen zur Verwendung dieser Leistungsindikator die Speicherseite zu bestimmen klicken Sie auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
889654 Gewusst wie: Bestimmen der geeigneten Auslagerungsdateigröße für 64-Bit-Versionen von Windows Server 2003 oder Windows XP
Darüber hinaus kann die Auswirkung der Auslagerungsaktivität auf 64-Bit-Editionen von SQL Server durch die Überwachung der folgenden Leistungsindikatoren gemessen werden:
Objekt: Prozess
Indikator: Private Bytes
Instanz: Sqlservr

Objekt: Prozess
Indikator: Arbeitsseiten
Instanz: Sqlservr
Der Private Bytes-Indikator misst den Speicher, der derzeit ein Commit ausgeführt wird. Der Arbeitsseiten-Leistungsindikator misst den physischen Speicher, der derzeit vom Prozess belegt wird. 64-Bit-Editionen von SQL Server verwenden auch den folgenden Leistungsindikator Speicher verfügbar zu machen, den der Pufferpool reserviert:
Datenobjekt: SQL Server: Speicher-Manager
Indikator: Total Server Memory(KB)
Hinweis Wenn die 64-Bit-Edition von SQL Server-Instanz um eine benannte Instanz handelt, ist der Name des Leistungsobjekts wie folgt:
MSSQL$Instanzname: Speicher-Manager
Wenn der Wert des Leistungsindikators Arbeitsseiten kleiner als der Wert des Leistungsindikators Total Server Memory(KB) ist, wurde zumindest ein wenig Arbeitsspeicher, der Teil des Pufferpools ist der SQL Server-Arbeitsseiten entfernt.

Nach dem zuweisen wird das Benutzerrecht Seiten im Speicher sperren und starten Sie den Dienst SQL Server-Pufferpool des SQL Server-Prozesses reagiert weiterhin auf Memory Resource Benachrichtigungsereignisse und dynamisch erhöht oder verringert sich in Reaktion auf diese Ereignisse. Jedoch kann nicht Speicherzuordnungen für den Pufferpool angezeigt, die in der folgenden Leistungsindikatoren im Arbeitsspeicher gesperrt sind:
  • Der Indikator Private Bytes und der Arbeitsseiten-Leistungsindikator im Systemmonitor
  • Die Spalte CPU-Auslastung auf der Registerkarte Prozesse im Task-Manager
Nachdem diese Seiten gesperrt sind, stellen diese Leistungsindikatoren die Arbeitsspeicherreservierungen innerhalb des SQL Server-Prozesses, wenn diese Zuweisungen Pufferpool nicht verwenden. Der Leistungsindikator Total Server Memory(KB) des Leistungsobjekts SQL Server: Speicher-Manager stellt genau den Speicher, der für den Pufferpool zugeordnet wird.

Wichtige Überlegungen vor dem Zuordnen des Benutzers "Lock Pages in Memory" für eine Instanz von einer 64-Bit-Edition von SQL Server

Stellen Sie zusätzliche Hinweise, bevor Sie das Sperren von Seiten im Speicher zuweisen rechts. Wenn Sie diesen Benutzer auf Systemen, die falsch konfiguriert sind zuweisen, kann das System instabil oder eine geringere Leistung des gesamten Systems auftreten. Ereignis-ID 333 möglicherweise außerdem im Ereignisprotokoll protokolliert.

Wenn Sie Microsoft Customer Support Service (CSS) für diese Probleme kontaktieren, CSS-Ingenieure fordert Sie möglicherweise auf diese Berechtigung für das Benutzerkonto zu widerrufen, das als Startkonto des SQL Server-Dienstes verwendet wird. Dieser Schritt möglicherweise wichtige Leistungsdaten zu sammeln, mit denen CSS-Ingenieure für die erforderlichen Konfigurationsschritte für die verschiedenen Optionen für SQL Server und für andere Anwendungen, die auf dem System ausgeführt werden. Nach der CSS-Ingenieure die Leistungsdaten erfassen, weisen Sie den Benutzer Sperren von Seiten im Speicher nach rechts um das Startkonto des SQL Server-Dienstes.

Bevor Sie das Benutzerrecht Seiten im Speicher sperren zuweisen, stellen Sie sicher, dass Sie ein Systemmonitorprotokoll zum Ermitteln der Arbeitsspeicheranforderungen von verschiedenen Anwendungen und Dienste, die auf dem System installiert sind erfassen. Zu diesen Anwendungen gehören auch SQL Server. Zusammentragen Sie folgende geplante Informationen, um die Speicheranforderungen zu bestimmen:
  • Stellen Sie sicher, dass Sie die Option max Server Memory und die Option min Server Memory richtig festgelegt. Diese Optionen entsprechen nur die Arbeitsspeicheranforderungen des Pufferpools des SQL Server-Prozesses. Diese Optionen enthalten nicht den Speicher, der für andere Komponenten in der SQL Server-Prozess zugeordnet ist. Diese Komponenten umfassen Folgendes:
    • Der SQL Server-Worker-threads
    • Die Multipage-Belegungsfunktion des SQL Server-Speicherverwaltung
    • Verschiedene DLLs und Komponenten, die der SQL Server-Prozess innerhalb des Adressraums des SQL Server-Prozesses lädt
    • Die Backup- und Restore-Operationen
  • Die DLLs und Komponenten umfassen verschiedene OLE DB-Provider, erweiterte gespeicherte Prozeduren, die Microsoft COM-Objekte, die für die Sp_OACreate gespeicherten Prozedur, verknüpfte Server und SQL Server CLR verwendet werden. Speicher, der für diese Komponenten zugeordnet wird fällt unter die Nonbuffer Pool Region des Adressraums des SQL Server-Prozesses. Die maximale Größe des Speichers im Idealfall bestimmen möchten, die der gesamte SQL Server-Prozess verwenden kann, müssen Sie den Speicher subtrahieren, der für Komponenten, die nicht aus dem gesamten Pufferpool verwenden zugeordnet wird, dass Sie den SQL Server-Prozess verwenden soll. Den Restwert können Sie dann die Option max Server Memory festgelegt. Bevor Sie die Option max Server Memory und die Option min Server Memory festlegen, sollten Sie das Thema "Die Arbeitsspeicheroptionen manuell festlegen" in der SQL Server-Onlinedokumentation sorgfältig überprüfen.
  • Bestimmen Sie die Arbeitsspeicheranforderungen anderer Anwendungen und der Komponenten des Windows-Betriebssystems. Anwendungen können andere SQL Server-Komponenten, z. B. SQL Server-Agent, Replikations-Agents von SQL Server, SQL Server Reporting Services, SQL Server Analysis Services, SQL Server Integration Services und SQL Server-Volltextsuche umfassen. Anwendungen, die backup-Vorgänge und Kopieren der Dateien möglicherweise viel Speicher verwenden. Betrachten Sie Vorgänge wie Massenkopieren und der Snapshot-Agent, die Datei-e/a erzeugen. Bestimmen Sie den Wert der Option max Server Memory und der Option min Server Memory , müssen Sie die Speicheranforderungen für diese Anwendungen berücksichtigen. Der Indikator Private Bytes und der Arbeitsseiten-Leistungsindikator unter das Prozessobjekt für jeden Prozess können Sie um die Arbeitsspeicheranforderungen für einen bestimmten Prozess zu ermitteln.
  • Standardmäßig hat das Benutzerrecht Seiten im Speicher sperren bereits das integrierte Konto Lokales System zugewiesen wurde. Weitere Informationen finden Sie auf der folgenden Microsoft-Website:
    http://blogs.msdn.com/psssql/archive/2007/10/18/Do-i-have-to-Assign-the-Lock-Privilege-for-Local-System.aspx
  • Wenn Sie ein Windows-Benutzerkonto global für alle SQL Server-Prozesse in einer Domäne verwenden, bestimmen Sie die Benutzerrechte, die mithilfe einer Gruppenrichtlinie Konfigurations zugeordnet sind. Ein 32-Bit-SQL Server-Prozess kann dieses Konto als Startkonto verwenden. Allerdings erfordert dieses Konto das Benutzerrecht Seiten im Speicher sperren die Address Windowing Extensions (AWE) aktiviert. Weitere Informationen finden Sie unter dem Thema "Bereitstellung die maximale Größe des Speichers für SQL Server" in der SQL Server-Onlinedokumentation.
  • Bevor Sie die Option max Server Memory und min Server Memory -Option für mehrere Instanzen von SQL Server konfigurieren, sollten Sie die Speicheranforderungen des Pools Nonbuffer für jede Instanz von SQL Server. Konfigurieren Sie diese Optionen für jede Instanz von SQL Server.
Im Idealfall sammeln Sie diese Basisplaninformationen während der Spitzenbelastungszeiten. Aus diesem Grund können Sie die Speicheranforderungen für verschiedene Anwendungen und Komponenten zur Unterstützung der Spitzenlast ermitteln. Die Speicheranforderungen variieren von einem System auf ein anderes System, abhängig von den Aktivitäten und Anwendungen, die auf dem System ausgeführt werden.

Wie Sie anhand der Informationen aus der SQL Server-Ringpuffer die Speicherbedingungen bestimmen, wenn Paging auftritt

Informationen aus SQL Server Ringpuffer können die Bedingungen der Arbeitsspeicher auf dem Server zu bestimmen, wenn Paging auftritt. Ein Skript wie das folgende Skript können Sie um diese Informationen zu erhalten.
SELECT CONVERT (varchar(30), GETDATE(), 121) as runtime,
DATEADD (ms, -1 * (sys.ms_ticks - a.[Record Time]), GETDATE()) AS Notification_time,  
 a.* , sys.ms_ticks AS [Current Time]
 FROM 
 (SELECT x.value('(//Record/ResourceMonitor/Notification)[1]', 'varchar(30)') AS [Notification_type], 
 x.value('(//Record/MemoryRecord/MemoryUtilization)[1]', 'bigint') AS [MemoryUtilization %], 
 x.value('(//Record/MemoryRecord/TotalPhysicalMemory)[1]', 'bigint') AS [TotalPhysicalMemory_KB], 
 x.value('(//Record/MemoryRecord/AvailablePhysicalMemory)[1]', 'bigint') AS [AvailablePhysicalMemory_KB], 
 x.value('(//Record/MemoryRecord/TotalPageFile)[1]', 'bigint') AS [TotalPageFile_KB], 
 x.value('(//Record/MemoryRecord/AvailablePageFile)[1]', 'bigint') AS [AvailablePageFile_KB], 
 x.value('(//Record/MemoryRecord/TotalVirtualAddressSpace)[1]', 'bigint') AS [TotalVirtualAddressSpace_KB], 
 x.value('(//Record/MemoryRecord/AvailableVirtualAddressSpace)[1]', 'bigint') AS [AvailableVirtualAddressSpace_KB], 
 x.value('(//Record/MemoryNode/@id)[1]', 'bigint') AS [Node Id], 
 x.value('(//Record/MemoryNode/ReservedMemory)[1]', 'bigint') AS [SQL_ReservedMemory_KB], 
 x.value('(//Record/MemoryNode/CommittedMemory)[1]', 'bigint') AS [SQL_CommittedMemory_KB], 
 x.value('(//Record/@id)[1]', 'bigint') AS [Record Id], 
 x.value('(//Record/@type)[1]', 'varchar(30)') AS [Type], 
 x.value('(//Record/ResourceMonitor/Indicators)[1]', 'bigint') AS [Indicators], 
 x.value('(//Record/@time)[1]', 'bigint') AS [Record Time]
 FROM (SELECT CAST (record as xml) FROM sys.dm_os_ring_buffers 
 WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR') AS R(x)) a 
CROSS JOIN sys.dm_os_sys_info sys
ORDER BY a.[Record Time] ASC

Hinweis Diese Abfrage ist für SQL Server 2005 und SQL Server 2008 gültig.

Sie können die Informationen Abfragen, die bereitgestellt wird, in der dynamic Management View dm_os_process_memory zu verstehen, ob das System Speichermangel vorliegt. Weitere Informationen finden Sie in des Onlinedokumentation zu SQL Server 2008 Verweis auf der folgenden MSDN-Website:
http://msdn.Microsoft.com/en-us/library/bb510747.aspx
Die SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) bietet mehrere Regeln, um Situationen zu erkennen, die im working Set verkürzen des SQL Server-Prozesses führen kann. SQL Server 2008 R2 BPA unterstützt SQL Server 2008 und SQL Server 2008 R2.

Tabelle minimierenTabelle vergrößern
Regel-softwareRegel-TitelRegelbeschreibungProduktversionen, für die die Regel ausgewertet wird
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)
Einstellungen für den SQL Server-Speicher sind falsch


Wenn Sie BPA-Tool ausführen, und erhalten die Warnung "Database Engine - SQL Server-Speicher, dass Einstellungen falsch sind" müssen Sie die Einstellung für max Server Memory für diese Instanz von SQL Server überprüfen, und folgen den Empfehlungen im Abschnitt "wichtige Überlegungen vor dem Zuweisen des Benutzers"Lock Pages in Memory"für eine Instanz von einer 64-Bit-Edition von SQL Server" dieses Artikels.SQL Server 2008
SQL Server 2008 R2


SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)Dateien des Betriebssystems und der Treiber erforderlich für die Arbeit der Gruppe zuschneiden AktualisierungWenn Sie BPA-Tool ausführen und den Fehler auftreten, "Datenbankmodul - Betrieb von Systemdateien und Treibern needs Update für Arbeitsseiten zuschneiden," müssen Sie alle im Abschnitt "Lösung" dieses Artikels beschriebenen Updates zu überprüfen und anzuwenden.
SQL Server 2008
SQL Server 2008 R2

SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)Beträchtlicher Teil der SQL Server-Speicher hat ausgelagert wurde
Wenn Sie BPA-Tool ausführen und "Datenbankmodul - beträchtlicher Teil der ausgelagerten Speicher, SQL Server" den Fehler auftreten, müssen Sie in den Abschnitten "Lösung" und "Abhilfe" dieses Artikels überprüfen und entsprechende Maßnahmen ergreifen.
SQL Server 2008
SQL Server 2008 R2


Verbesserungen in WindowsServer 2008 und Windows Server 2008 R2


Windows Server 2008 und Windows Server 2008 R2 verbessert den zusammenhängenden Speicher Allocation-Mechanismus. Diese Verbesserung ermöglicht Windows Server 2008 und Windows Server 2008 R2 bis zu einem gewissen Grad verringern die Auswirkungen von Paging, das Workingset von Anwendungen beim Eintreffen neuer Speicheranforderungen.

Im folgenden finden eine Erläuterung der Verbesserungen, die von der Microsoft-Whitepaper "Rückt in Memory Management in Windows":

In Windows Server 2008 ist die Zuweisung von physisch Speicher erheblich verbessert. Anforderungen zusammenhängenden Speicher sind wahrscheinlicher, erfolgreich, da der Speicher-Manager nun dynamisch Seiten, in der Regel ersetzt, ohne die Arbeitsseiten Zuschneiden oder e/a-Operationen ausführen. Darüber hinaus zahlreiche weitere Arten von Seiten ? z. B. Kernel-Stacks und Datei-Metadaten Systemseiten, u. a. ? sind nun Kandidaten für die Ersetzung. Folglich ist mehr zusammenhängenden Speicher zu jedem Zeitpunkt im Allgemeinen zur Verfügung. Darüber hinaus wird die Kosten für solche Zuweisungen erhalten erheblich reduziert.
Das Whitepaper "Rückt in Memory Management in Windows" finden Sie auf der folgenden Microsoft-Website:
http://Download.Microsoft.com/Download/9/c/5/9c5b2167-8017-4BAE-9fde-d599bac8184a/MemMgt.docx
Weitere Informationen finden Sie auf der folgenden Microsoft-Websites:
http://blogs.msdn.com/psssql/archive/2008/03/03/SQL-Server-Working-Set-Trim-Problems-Consider.aspx
http://support.Microsoft.com/kb/2001745
Hinweis Auf einem Windows Server 2008-basierten Computer installieren Sie SQL Server Service Pack 2 (SP2) oder ein höheres Servicepack für SQL Server.

Die Produkte von Drittanbietern, die in diesem Artikel erörtert werden von Unternehmen hergestellt, die von Microsoft unabhängig sind. Microsoft übernimmt keine Garantie, weder konkludent noch anderweitig, über die Leistung oder Zuverlässigkeit dieser Produkte.

Eigenschaften

Artikel-ID: 918483 - Geändert am: Sonntag, 22. Juni 2014 - Version: 2.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
Keywords: 
kbsqlsetup kbsql2005engine kbexpertiseadvanced kbinfo kbmt KB918483 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 918483
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com