Wie man das Paging von Puffer-Poolspeicher in der 64-Bit-Version von SQL Server reduziert

Zusammenfassung

Microsoft SQL Server führt basierend auf den Speicheranforderungen der aktuellen Auslastung und Aktivitäten auf dem System eine dynamische Speicherverwaltung durch. Auf einem Windows Server 2003 ein Windows XP oder spätere Version System können SQL Server Arbeitsspeicher Benachrichtigungsmechanismen, die von der QueryMemoryResourceNotification Windows-API bereitgestellt werden. Auf einem Microsoft Windows 2000 Server-basierten System berechnet der SQL Server regelmäßig mit der systemeigenen Windows-API den freien physischen Speicher auf dem System. Anhand dieser Informationen aus der QueryMemoryResourceNotification Windows-API oder aus der Arbeitsspeicher-Berechnung reagiert der SQL Server auf den aktuellen Speicherzustand auf einem bestimmten System. Dies bringt die folgenden Vorteile:
  • Das System lagert das Workingset des SQL-Server-Prozesses nicht aus.
  • Die erforderlichen Datenbankseiten stehen im Speicher zur Verfügung um die physischen I/O-Anforderungen zu reduzieren.
Weitere Informationen finden Sie im Thema "Dynamic Memory Management" und "Serverarbeitsspeicher-Optionen" Thema 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 verringert plötzlich.
  • Ein Computer mit SQL Server für kurze Zeit reagiert.
  • Es treten Timeouts für Clientanwendungen auf, die sich mit dem SQL Server verbinden.
  • Auch wenn Sie einfache Befehle ausführen oder Anwendungen auf dem System nutzen, treten Probleme auf.
Wenn Sie SQL Server 2005 Service Pack 2 (SP2) oder höher installiert haben, wird eine der folgenden Fehlermeldungen im SQL Server-Fehlerprotokoll protokolliert, wenn diese Probleme auftreten:
Fehlermeldung 1
Datum Uhrzeit spid1s ein Großteil Sql Server-Prozessspeicher hat ausgelagert. Dies kann zu Leistungseinbußen führen. Dauer: 0 Sekunden. Arbeitsseiten (KB): 1086400, Commit (KB): 2160928, speicherauslastung: 50 %.
Fehlermeldung 2
Datum Uhrzeit spid1s ein Großteil Sql Server-Prozessspeicher hat ausgelagert. Dies kann zu Leistungseinbußen führen. Dauer: 315 Sekunden. Arbeitsseiten (KB): 410156, Commit (KB): 2201296, speicherauslastung: 18 %.
Fehlermeldung 3
Datum Uhrzeit spid1s ein Großteil Sql Server-Prozessspeicher hat ausgelagert. Dies kann zu Leistungseinbußen führen. Dauer: 646 Sekunden. Arbeitsseiten (KB): 901904, Bestätigt (KB): 2215752, Speicher-Auslastung: 40 %.


Microsoft SQL Server-Support-Team beobachtet auch Fehlermeldungen oder Warnungen im SQL Server-Fehlerprotokoll oder in den Windows-Ereignisprotokollen aufgezeichnet werden. Diese Meldungen können folgendermaßen 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 werden möglicherweise zusammen mit der Fehlermeldung "ein bedeutender Teil des Sql Server-Prozessspeicher wurde ausgelagert" angezeigt. In einigen Fällen diese Fehlermeldungen oder Warnungen nicht zusammen mit der Fehlermeldung angezeigt.

Sollten Sie eine dieser Fehlermeldungen oder Warnungen beobachten, betrachten Sie die Auslagerung des SQL Server-Arbeitssatzes, welche in diesem Artikel erläutert wird, als eine mögliche, aber nicht die einzige Ursache. Diese zusätzlichen Fehlermeldungen oder Warnungen könnten aber auch wegen verschiedener anderer Zustände oder Ursachen protokolliert werden.

Ursache

Dieses Problem tritt auf, weil das Windows-Betriebssystem das Workingset des SQL Server-Prozesses auslagert.

Diese Fehlermeldungen werden protokolliert, wenn das Workingset der SQL Server-Prozess 50 Prozent oder weniger Speicher, der SQL Server-Prozess verpflichtet ist. Diese Fehlermeldungen können Fall bestimmen in dem SQL Server-Leistung erheblich verringert, da Windows Betriebssystem Seiten das Workingset des Prozesses SQL Server heraus. Diese Fehlermeldungen werden außerdem alle 5 Minuten während der ersten 30 Minuten protokolliert. Nach den ersten 30 Minuten verdoppelt sich die Zeit zwischen den Fehlermeldungen bis die maximale Zeit von einem Tag erreicht ist.

Wenn dieses Problem auftritt, bemerken Sie, dass das Workingset von anderen Programmen im System auch gleichzeitig ausgelagert wird.
Weitere Informationen finden Sie auf der folgenden Microsoft-Website:
Darüber hinaus besteht ein bekanntes Problem in SQL Server, durch welches Sie ebenfalls diese Fehlermeldung erhalten können. Die Fehlermeldung wird beim Starten von SQL Server im SQL Server-Fehlerprotokoll protokolliert. Die Fehlermeldung ist möglicherweise eine Falschmeldung. Daher bedeutet es möglicherweise nicht, dass der Arbeitssatz tatsächlich gestutzt worden ist. Weitere Informationen finden Sie auf folgender Microsoft-Website:

PROBLEMUMGEHUNG

Bevor Sie versuchen, dieses Problem zu umgehen, führen Sie die Schritte im Abschnitt "Wie Sie dieses Problem beheben" aus, um das Problems zu beseitigen.

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

Hinweis Für 64-Bit-Editionen von SQL Server können nur SQL Server Enterprise Edition Seiten im Speicher sperren Benutzer rechts. Dies gilt für SQL Server 2005 [RTM, SP1, SP2, SP3] und SQL Server 2008 [RTM und SP1]. SQL Server 2008 SP1 kumulative Update 2 und SQL Server 2005 SP3 kumulative Update 4 bieten Unterstützung für Benutzer Sperren von Seiten im Speicher direkt mit SQL Server Standard Edition. Weitere Informationen zur Unterstützung für gesperrte Seiten auf 64-Bit-Systemen, klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

970070 Unterstützung für gesperrten Seiten auf SQL Server 2005 Standard Edition 64-Bit-Systeme und 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 Sie gpedit.msc einund klicken Sie dann auf OK.

    Hinweis Die
    Gruppenrichtlinien -Dialogfeld wird angezeigt.
  2. Erweitern Sie Computerkonfigurationund dann Windows-Einstellungen.
  3. Erweitern Sie Sicherheit, und dann
    Lokale Richtlinien.
  4. Klicken Sie auf Zuweisen von Benutzerrechten, und doppelklicken Sie auf Seiten im Speicher sperren.
  5. Klicken Sie im Dialogfeld Lokale Sicherheitsrichtlinieauf Benutzer oder Gruppe hinzufügen.
  6. Klicken Sie im Dialogfeld Benutzer oder Gruppen auswählen fügen Sie das Konto über die Berechtigung zum Ausführen der Datei Sqlservr.exe und dann auf hinzu
    OK.
  7. Schließen Sie das Dialogfeld Gruppenrichtlinie .
  8. Starten Sie den SQL Server-Dienst.
Nach dem Zuweisen Benutzerrecht Seiten im Speicher sperren und den SQL Server-Dienst neu starten, das Betriebssystem nicht mehr Seiten, Puffer Poolspeicher in SQL Server verarbeitet. Jedoch kann das Betriebssystem noch Nonbuffer Pool-Speicher in der SQL Server-Prozess Seite.

Sie können überprüfen, ob das Benutzerrecht sicherstellen, dass die folgende Meldung im Fehlerprotokoll von SQL Server beim Start erfolgt durch die Instanz von SQL Server verwendet wird:
Verwenden gesperrter Seiten für den Pufferpool
Diese Meldung gilt nur für 64-Bit-Editionen von SQL Server. Weitere Informationen zu dieser Meldung in das Fehlerprotokoll finden Sie auf der folgenden Microsoft-Website:Wenn Windows Betriebssystem Seiten Poolspeicher Nonbuffer hinaus können dennoch Leistungsprobleme auftreten. Die im Abschnitt "Symptome" aufgeführten Fehlermeldungen werden jedoch nicht im SQL Server-Fehlerprotokoll protokolliert. Dieses Verhalten tritt auf, weil die Arbeitsseiten eines Prozesses SQL Server normalerweise nicht 50 Prozent erreichen oder weniger des reservierten Speichers.

Weitere Informationen

Wie Sie dieses Problem beheben

Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:
  1. Um bekannte Probleme zu beheben, die das Windows Seite das Workingset der SQL Server-Prozess Betriebssystem, wenden Sie die in folgenden Artikeln der Microsoft Knowledge Base beschriebenen Hotfixes an

    Hinweis Updates sind kumulativ. Eine neuere Version eines Updates enthält früheren Versionen dieses Hotfixes.
    • Microsoft hat ein Problem festgestellt, die 64-Bit-Edition von SQL Server möglicherweise Arbeitsseiten sein.
      Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

      905865 die Größe des Workingsets aller Prozesse in einer Konsolen-Sitzung möglicherweise gekürzt, wenn Sie Terminaldienste verwenden, um an- oder Abmelden von einem Computer mit Windows Server 2003

    • Computer mit Windows Server 2003 können zu aggressiv sein, wenn sie dirty Puffer zwischenspeichern, wenn eine Anwendung ausführen gepufferten e/a wie Dateikopiervorgang. Dieses Verhalten kann die Arbeitsseiten gekürzt werden SQL Server.
      Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

      920739 treten möglicherweise eine Abnahme der Systemleistung beim Kopieren Dateien, die größer als ca. 500 MB im Windows Server 2003 oder Windows Server 2003-S

    • Das Workingset SQL Server kann bei der erweiterten TCP-Funktionen wird gekürzt. Für Weitere Informationen klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

      942861 -Fehlermeldung, wenn eine Anwendung mit SQL Server auf einem Server verbunden, auf dem Windows Server 2003 ausgeführt wird: "Allgemeiner Netzwerkfehler", "Kommunikationsverbindungsfehler" oder "Ein Übertragungsfehler"

    • Auf einen Multiprozessor-Computer, auf dem Windows Server 2003 ausgeführt wird, kann der Systemprozess die meisten verfügbaren Systemspeicher verbrauchen. Für Weitere Informationen klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

      942486 der Systemprozess kann die meisten verfügbaren Systemspeicher auf einen Multiprozessor-Computer verwenden, die unter Windows Server 2003

  2. Wenn ein Gerätetreiber die Funktion MmAllocateContiguousMemory verwendet und wird den Wert des Parameters HighestAcceptableAddress auf 4 Gigabyte (GB), kann Windows-Betriebssystem, das Workingset des Prozesses SQL Server 64-Bit-Seite. Um dieses Problem zu beheben, Hersteller des Gerätetreibers für Treiberupdates. Eine Liste der Treiber, die Probleme haben, finden Sie im Abschnitt "andere Anbieter" im folgenden Artikel der Microsoft Knowledge Base:
    2121098 empfohlen Betriebssystem-Updates und Treiber für SQL Server-Installationen
  3. Wenden Sie Sie nach der Installation dieser Updates 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 klicken, um die Artikel der Microsoft Knowledge Base:

    938486 A Windows Server 2003-basierten Computer reagiert wegen einer Speicher-Manager verkürzen, der einem unbestimmten Modul verursacht wird, die viel Speicher anfordert

    956341 A Windows Server 2003-basierten Computer reagiert aufgrund einer Anforderung zum Reservieren von Speicher

    Wenn ein Treiber versucht, Speicher, kann das Windows-Betriebssystem, das Workingset hinaus Seite. Windows Hotfix können Sie Event Tracing zu den Treiber, der Problem verursacht. Weitere Informationen zu den jeweiligen Treiber, das Working Set verkürzen Verhalten führt finden Sie im MSDN-Artikel "Treiber identifizieren, zusammenhängenden Speicher zuordnen".
  4. Clientanwendungen können Systemcache zu viel und verursachen ein starkes Wachstum des System-Cache. Reaktion auf das Wachstum des Systemcache out Systemseiten das Workingset der SQL Server-Prozess oder andere Programme. Wenn dieses Problem auftritt, können Sie einige Speicher-Management-Funktionen in der Anwendung. Diese Funktionen steuern die System-Cache-Speicher, die Datei-e/a-Vorgänge in der Anwendung verwenden können. Beispielsweise können Sie der SetSystemFileCacheSize und der GetSystemFileCacheSize Funktion Cachespeicher System gesteuert, die Datei-e/a-Vorgänge verwenden können.

    Das Objekt Speicher können Sie in diesem Objekt zu bestimmen, ob der Systemcache Workingset viel Arbeitsspeicher verwendet die Werte verschiedener Leistungsindikatoren anzuzeigen. 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:Herunterladen und Bereitstellen von "Microsoft Windows Dynamic Cache Service" Speicher gesteuert, der von dem Systemcache verwendet.
  5. Ein Paging Problem kann auftreten, wenn SQL Server mit SAP r/3 ausgeführt wird. Für Weitere Informationen klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
    931308 erhöhtem Paging auf die Festplatte bei Auftreten einer SAP r/3-Anwendung auf einem Windows Server 2003-Computer ausführen

  6. Wenn Sie SQL Server auf Windows Server 2008 ausführen, müssen Sie Updates für bekannte Probleme anwenden, der Satz verkürzen oder unnötige übermäßiges Arbeitsspeicherverbrauch anderer Komponenten arbeiten zu können. Klicken Sie für weitere Informationen auf die folgenden Artikelnummern, um die betreffenden Artikel in der Microsoft Knowledge Base anzuzeigen:

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

    974609 ein Computer mit Windows Server 2008 zufällig ist reagiert nicht mehr, wenn Sie eine umfangreiche Anwendung ausführen

    971714 die Generierung des Berichts reagiert beim Ausführen von Perfmon.exe mit Active Directory-Diagnose Vorlage einen Bericht auf einem Windows Server 2008-basierten Domänencontroller
  7. Wenn Sie SQL Server auf Windows dienen 2008 R2 ausführen, müssen Sie Updates für bekannte Probleme anwenden, die working Set Zuschneiden zu können. Klicken Sie für Weitere Informationen auf den folgenden Artikeln der Microsoft Knowledge Base:
    979149 Wenn Sie eine umfangreiche Anwendung ausführen, reagiert ein Computer mit Windows 7 oder Windows Server 2008 R2

    2155311 Leistung tritt auf Computern, die NUMA-basierte Prozessoren und Betriebssystem Windows Server 2008 R2 oder Windows 7 Wenn Thread fordert viel Speicher innerhalb der ersten 4 GB Arbeitsspeicher

    2468345 Computer zeitweise fehlerhaft oder reagiert nicht mehr bei der Storport-Treiber in Windows Server 2008 R2

Speicher ermitteln, mit der 64-Bit-Editionen von SQL Server

Systemmonitor können Sie die Speicherseite anzeigen, die von 64-Bit-Editionen von SQL Server verwendet wird. Überwachen Sie dazu den folgenden Leistungsindikator:
Objekt: Speicher
Indikator: Seiten/s
Weitere Informationen zum Verwenden dieser Zähler bestimmt die Speicherseite klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
889654 das Bestimmen der geeigneten Auslagerungsdateigröße für 64-Bit-Versionen von Windows Server 2003 oder Windows XP

Außerdem messen Sie die Wirkung der Auslagerungsdatei auf 64-Bit-Editionen von SQL Server durch die folgenden Leistungsindikatoren überwachen:
Objekt: Prozess
Indikator: Private Bytes
Instanz: Sqlservr

Objekt: Prozess
Indikator: Arbeitsbereich

Instanz: Sqlservr
Private Bytes Zählers Speicher derzeit einsetzt. Die Arbeitsseiten Zählers des physischen Speichers, der derzeit vom Prozess belegt wird. 64-Bit-Editionen von SQL Server verwendet den folgenden Leistungsindikator auch gemacht Pufferpool reserviert Speicher:
Objekt: SQL Server: Speicher-Manager

Indikator: Insgesamt Memory(KB) Server
Hinweis Wenn die 64-Bit-Edition von SQL Server-Instanz eine benannte Instanz handelt, lautet der Name des Leistungsobjekts
MSSQL$InstanceName: Speicher-Manager
Ist der Wert des Leistungsindikators Arbeitsseiten kleiner als der Wert des Leistungsindikators Total Server Memory(KB), wurde zumindest ein Teil des Pufferpools Speicher SQL Server Arbeitssatz entfernt.

Nach dem Zuweisen Benutzerrecht Seiten im Speicher sperren und starten den Dienst SQL Server-Pufferpool der SQL Server-Prozess reagiert noch Speicher Ressource Benachrichtigungsereignisse und dynamisch erhöht oder verringert auf diese Ereignisse. Allerdings nicht Speicherbereiche für den Pufferpool angezeigt, die im Speicher in die folgenden Leistungsindikatoren werden:
  • Der Indikator Private Bytes und Arbeiten mit Leistungsindikatoren im Systemmonitor
  • Die Spalte CPU-Auslastung auf der Registerkarte Prozesse im Task-Manager
Nachdem diese Seiten gesperrt sind, Darstellung dieser Leistungsindikatoren Speicherbereiche innerhalb des SQL Server die Umlagen Pufferpool nicht verwenden. Der Leistungsindikators Total Server Memory(KB) den SQL Server: Speicher-Manager stellt genau für den Pufferpool reservierten Speicher.

Wichtig Bevor Sie das "Lock Pages in Memory" für eine Instanz einer 64-Bit-Edition von SQL Server zuweisen

Sie sollten zusätzliche Aspekte machen bevor Sie das Sperren von Seiten im Speicher zuweisen. Dieser Benutzer auf Systemen zugewiesen, die falsch konfiguriert sind, kann das System instabil oder einem Leistungsabfall des gesamten Systems auftreten. Außerdem kann Ereignis-ID 333 im Ereignisprotokoll protokolliert.

Kontaktaufnahme mit Microsoft Customer Support Service (CSS) für diese Probleme CSS-Techniker 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, die CSS-Ingenieure für erforderlichen Konfiguration der verschiedenen Optionen für SQL Server und andere Programme, die auf dem System ausgeführt werden können. Nach der CSS-Engineers die Leistungsdaten können Sie Seiten im Speicher sperren Benutzer direkt das Startkonto des SQL Server-Dienstes zuweisen.

Vergewissern Sie das Benutzerrecht Seiten im Speicher sperren zuweisen, erfasst ein Systemmonitorprotokoll ermitteln Sie den Speicherbedarf des verschiedene Programme und Dienste, die auf dem System installiert sind. Diese Programme enthalten auch SQL Server. Ermitteln Sie den Speicherbedarf Informationen Sie die folgenden Baseline:
  • Stellen Sie sicher, dass Sie die Option max Server Memory und min Server Memory aus eingestellt. Diese Optionen entsprechen nur den Speicherbedarf 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:
    • SQL Server-Worker-threads
    • Mehrseitige Zuweisung des SQL Server-Speicher-Manager
    • Verschiedene DLLs und Komponenten der SQL Server-Prozess innerhalb des Adressraums des SQL Server-Prozesses lädt
    • Backup und Restore-Vorgänge
  • Die DLLs und Komponenten enthalten verschiedene OLE DB-Provider, erweiterte gespeicherte Prozeduren, Microsoft COM-Objekte, die für die Sp_OACreate gespeicherte Prozedur verknüpfte Server und SQL Server CLR verwendet werden. Für diese Komponenten zugewiesen fällt unter Nonbuffer Pool-Bereich des Adressbereichs des SQL Server-Prozesses. Idealerweise die maximale Speichermenge zu ermitteln, die SQL Server-Prozess verwenden kann, müssen Sie den Speicher subtrahieren, der Komponenten, die nicht Pufferpool aus dem Gesamtspeicher zugeordnet ist, den SQL Server-Prozess verwendet werden soll. Den Restwert können Sie dann die Option max Server Memory festgelegt. Vor dem Festlegen der Option max Server Memory und min Server Memory aus sollten Sie das Thema "Die Speicheroptionen manuell festlegen" in der SQL Server-Onlinedokumentation sorgfältig überprüfen.
  • Bestimmen des Speicherbedarfs von anderen Programmen und Komponenten des Windows-Betriebssystems. Clientanwendungen können andere SQL Server-Komponenten, z. B. SQL Server Agent Replikations-Agenten von SQL Server, SQL Server Reporting Services, SQL Server Analysis Services, SQL Server Integration Services und SQL Server-Volltextsuche enthalten. Programme, die backup-Vorgänge und Kopiervorgänge durchführen können viel Speicher verwenden. Betrachten Sie Vorgänge wie Massenkopieren und der Snapshot-Agent, die Datei-e/a erzeugen. Berücksichtigen Sie den Speicherbedarf dieser Anwendung bestimmen Sie den Wert der Option max Server Memory und min Server Memory aus. Die Private Bytes und Arbeitssatz Counter unter Prozessobjekt für jeden Prozess können Sie um den Speicherbedarf für einen bestimmten Prozess zu ermitteln.
  • Standardmäßig ist das Benutzerrecht Seiten im Speicher sperren das integrierte Konto Lokales System bereits zugeordnet. Weitere Informationen finden Sie auf der folgenden Microsoft-Website:
  • Wenn Sie ein Windows-Benutzerkonto global für alle SQL Server-Prozesse in einer Domäne verwenden, bestimmen Sie die Benutzerrechte, die mit einer Gruppenrichtlinie Konfiguration zugeordnet sind. Ein 32-Bit-SQL Server-Prozess kann dieses Konto als Startkonto verwenden. Allerdings erfordert dieses Konto die Berechtigung Seiten im Speicher sperren die Address Windowing Extensions (AWE) aktiviert. Weitere Informationen finden Sie unter "SQL Server die maximale Speichermenge bereitzustellen" in 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 den Speicherbedarf des Nonbuffer-Pool für jede Instanz von SQL Server. Konfigurieren Sie diese Optionen für jede Instanz von SQL Server.
Im Idealfall sammeln Sie diese Basisinformationen während Spitzenbelastungszeiten. Daher können Sie den Speicherbedarf für verschiedene Programme und Komponenten unterstützen die Spitzenlast bestimmen. Der Speicherbedarf variieren von einem System auf ein anderes System, Aktivitäten und Programme, die auf dem System ausgeführt werden.

Verwendung die Informationen aus SQL Server Ringpuffer den Arbeitsspeicher bestimmt, wenn Paging auftritt

Können Sie Daten aus SQL Server Ringpuffer Arbeitsspeicher auf dem Server bestimmt, 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 gültig für SQL Server 2005 und SQL Server 2008.

Dynamische Ansicht sys.dm_os_process_memory zu verstehen, ob das System Speichermangel stößt erfolgt können die Informationen abgefragt werden. Weitere Informationen finden Sie in des Onlinedokumentation zu SQL Server 2008 Verweis auf der folgenden MSDN-Website:SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) bietet mehrere Regeln zum Erkennen von Situationen working Set Zuschneiden des SQL Server-Prozesses führen kann. SQL Server 2008 R2 BPA unterstützt SQL Server 2008 und SQL Server 2008 R2.

Regel-softwareRegel-TitelBeschreibungProduktversionen, die Regel ausgewertet wird
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)
SQL Server-sind Speicher falsch


Wenn Sie BPA-Tool und erhalten die Warnung "Database Engine - SQL Server-Speicher falsch sind" müssen Sie max Server Memory festgelegt für diese Instanz von SQL Server und die Vorschläge im Abschnitt "wichtig vor dem Zuweisen des Benutzers"Lock Pages in Memory"für eine Instanz 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)Systemdateien und Treibern benötigt Updates für working Set verkürzenWenn Sie BPA ausführen, den Fehler tritt "Datenbankmodul - Betrieb von Systemdateien und Treibern benötigt Update für Arbeitsseiten zuschneiden," müssen Sie alle im Abschnitt "Lösung" dieses Artikels beschriebenen Updates ü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 wurde nicht ausgelagert
Wenn Sie das BPA-Tool ausführen und den Fehler "Datenbankmodul - Großteil Speicher ausgelagerten, SQL Server" 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


WindowsServer 2008 und Windows Server 2008 R2 verbessert


Windows Server 2008 und Windows Server 2008 R2 verbessert zusammenhängend Allocation Mechanismus. Diese Verbesserung ermöglicht Windows Server 2008 und Windows Server 2008 R2 gewissermaßen reduzieren die Effekte von Paging, das Workingset der Anwendung neue Speicher-Anfragen eintreffen.

Im folgenden finden eine Erläuterung der Verbesserung von Microsoft-Whitepaper "Setzt in Memory Management in Windows":

Die Zuweisung von physisch Speicher ist in Windows Server 2008 stark verbessert. Anfragen zusammenhängenden Speicher sind eher erfolgreich, da der Speicher-Manager dynamisch Seiten normalerweise ersetzt ohne Trimmen der Arbeitsseiten e/a-Vorgänge. Außerdem viele weitere Arten von Seiten – wie Kernel-Stacks und Datei System Metadaten, u.a. – sind jetzt ersetzt. Folglich ist mehr zusammenhängenden Speicher jederzeit erhältlich. Darüber hinaus wird die Kosten zu solchen Zuordnung erheblich reduziert.
Das Whitepaper "Setzt in Memory Management in Windows" finden Sie auf folgender Microsoft-Website:
Weitere Informationen finden Sie auf folgenden Microsoft-Websites:
Hinweis Auf einem Windows Server 2008-Computer installieren Sie SQL Server Service Pack 2 (SP2) oder ein höheres Servicepack für SQL Server.

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

Artikelnummer: 918483 – Letzte Überarbeitung: 16.01.2017 – Revision: 1

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

Feedback