Empfohlene Updates und Konfigurationsoptionen für SQL Server mit leistungsstarken Workloads

Dieser Artikel enthält eine Liste der Leistungsverbesserungen und Konfigurationsoptionen, die für SQL Server 2012 und höhere Versionen verfügbar sind.

Ursprüngliche Produktversion:   SQL Server 2014, SQL Server 2012
Ursprüngliche KB-Nummer:   2964518

In diesem Artikel werden die Leistungsverbesserungen und Änderungen beschrieben, die für SQL Server 2014- und SQL Server 2012-Versionen über verschiedene Produktupdates und Konfigurationsoptionen verfügbar sind. Sie können diese Updates anwenden, um die Leistung der Instanz von SQL Server zu verbessern. Der Grad der Verbesserung hängt von verschiedenen Faktoren ab, z. B. workload pattern, contention points, processor layout (number of processor groups, sockets, NUMA nodes, cores in a NUMA node) and amount of memory present in the system. SQL Server Supportteam hat diese Updates und Konfigurationsänderungen verwendet, um angemessene Leistungsvorteile für Kundenarbeitslasten zu erzielen, die Hardwaresysteme verwendet haben, die über mehrere NUMA-Knoten und viele Prozessoren verfügten. Das Supportteam wird diesen Artikel auch in Zukunft mit anderen Updates aktualisieren.

High-End-Systeme Ein High-End-System verfügt in der Regel über mehrere Sockets, acht Kerne oder mehr pro Socket und eine halbe Terabyte oder mehr Arbeitsspeicher.

Hinweis

In SQL Server 2016 und neueren Versionen sind viele der in diesem Artikel erwähnten Ablaufverfolgungsflags das Standardverhalten, und Sie müssen sie in diesen Versionen nicht aktivieren.

Die Empfehlungen sind wie folgt in drei Tabellen unterteilt:

  • Tabelle 1 enthält die am häufigsten empfohlenen Updates und Ablaufverfolgungsflags für die Skalierbarkeit auf High-End-Systemen.
  • Tabelle 2 enthält Empfehlungen und Anleitungen für die zusätzliche Leistungsoptimierung.
  • Tabelle 3 enthält zusätzliche Skalierbarkeitspatches, die zusammen mit einem kumulativen Update enthalten waren.

Tabelle 1. Wichtige Updates und Ablaufverfolgungsflags für High-End-Systeme

Überprüfen Sie die folgende Tabelle, und aktivieren Sie die Ablaufverfolgungskennzeichen in der Spalte "Ablaufverfolgungskennzeichen", nachdem Sie sichergestellt haben, dass Ihre Instanz von SQL Server die Anforderungen in der Spalte "Anwendbare Version" und "Buildbereiche" erfüllt.

Hinweis

  • Die zutreffende Version und der Build gibt das spezifische Update an, in dem das Änderungs- oder Ablaufverfolgungskennzeichen eingeführt wurde. Wenn kein CU angegeben ist, sind alle CU-Elemente im SP enthalten.

  • Nicht zutreffende Version und Build gibt das spezifische Update an, bei dem das Änderungs- oder Ablaufverfolgungskennzeichen zum Standardverhalten wurde. Daher reicht es aus, nur dieses Update anzuwenden, um die Vorteile zu nutzen.

Wichtig

Wenn Sie Fixes mit Ablaufverfolgungskennzeichen in AlwaysOn-Umgebungen aktivieren, müssen Sie die Korrektur- und Ablaufverfolgungskennzeichen für alle Replikate aktivieren, die Teil der Verfügbarkeitsgruppe sind.

Zu berücksichtigende Szenarien und Symptome Ablaufverfolgungskennzeichnung Zutreffende Version und Buildbereiche Nicht zutreffende Version und Buildbereiche Knowledge Base-Artikel/Bloglink mit weiteren Details
  • Es treten hohe CMEMTHREAD-Wartezeiten auf.
  • SQL Server wird auf Systemen mit 8 oder mehr Kernen pro Socket installiert.
T8048
  • SQL Server 2012 RTM zum aktuellen Service Pack (SP)/CU
  • SQL Server 2014 RTM zu SP1
  • SQL Server 2014 SP2 zum aktuellen SP/CU
  • SQL Server 2016 RTM zum aktuellen SP/CU
  • SQL Server 2017 RTM zum aktuellen SP/CU
  • Es treten hohe CMEMTHREAD-Wartezeiten auf.
  • SQL Server wird auf Systemen mit 8 oder mehr Kernen pro Socket installiert.
T8079 SQL Server 2014 SP2 zum aktuellen SP/CU
  • SQL Server 2016 RTM zum aktuellen SP/CU
  • SQL Server 2017 RTM zum aktuellen SP/CU
  • Sie verwenden Features, die auf dem Protokollpoolcache basieren. (z. B. AlwaysOn)
  • SQL Server wird auf Systemen mit mehreren Sockets installiert.
T9024 Kumulatives Updatepaket 3 für SQL Server 2012 Service Pack 1 auf SP2 SQL Server 2014 RTM
  • SQL Server 2012 SP3 auf aktuelle SP/CUSQL
  • Server 2014 SP1 zum aktuellen SP/CU
  • SQL Server 2016 RTM zum aktuellen SP/CU
  • SQL Server 2017 RTM zum aktuellen SP/CU
FIX: Hoher Wert für "Protokollschreibwartevorgang" in einer SQL Server 2012- oder SQL Server 2014-Instanz
Ihre Instanz von SQL Server verarbeitet Tausende von Verbindungsrücksetzungen aufgrund von Verbindungspooling. T1236 Kumulatives Updatepaket 9 für SQL Server 2012 Service Pack 1 zu SP2 Kumulatives Update 1 für SQL Server 2014
  • SQL Server 2012 SP3 auf aktuelle SP/CUSQL
  • Server 2014 SP1 zu aktueller SP/CUSQL
  • Server 2016 RTM zum aktuellen SP/CU
  • SQL Server 2017 RTM zum aktuellen SP/CU
  • Ihre Anwendungsworkload umfasst eine häufige Tempdb-Verwendung (Erstellung und Drop von temporären Tabellen oder Tabellenvariablen).
  • Sie stellen fest, dass Benutzeranforderungen aufgrund von Zuordnungskonflikten auf tempdb-Seitenressourcen warten.
T1118
  • SQL Server 2012 RTM zum aktuellen SP/CU
  • SQL Server 2014 RTM zum aktuellen SP/CU
  • SQL Server 2016 RTM zum aktuellen SP/CU
  • SQL Server 2017 RTM zum aktuellen SP/CU
Verbesserungen der Parallelität für die tempdb-Datenbank

HINWEIS Aktivieren Sie das Ablaufverfolgungsflag, und fügen Sie mehrere Datendateien für die tempdb-Datenbank hinzu.
  • Sie verfügen über mehrere tempdb-Datendateien.
  • Die Datendateien werden zunächst auf die gleiche Größe festgelegt.
  • Aufgrund der umfangreichen Aktivität stoßen tempdb-Dateien auf ein Wachstum, und nicht alle Dateien wachsen gleichzeitig und verursachen Zuordnungskonflikte.
T1117
  • SQL Server 2012 RTM zum aktuellen SP/CU
  • SQL Server 2014 RTM zum aktuellen SP/CU
  • SQL Server 2016 RTM zum aktuellen SP/CU
  • SQL Server 2017 RTM zum aktuellen SP/CU
Empfehlungen, um Zuordnungskonflikte in SQL Server tempdb-Datenbank zu reduzieren
Umfangreiche SOS_CACHESTORE Spinlock-Konflikte oder Ihre Pläne werden bei Ad-hoc-Abfrageworkloads häufig geräumt. T174 Keine
  • Einträge im Plancache werden aufgrund des Wachstums in anderen Caches oder Speichermitarbeitern gelöscht.
  • Hohe CPU-Auslastung aufgrund häufiger Neukompilierungen von Abfragen
T8032
  • SQL Server 2012 RTM zum aktuellen SP/CU
  • SQL Server 2014 RTM zum aktuellen SP/CU
Keine
Vorhandene Statistiken werden aufgrund der großen Anzahl von Zeilen in der Tabelle nicht häufig aktualisiert. T2371
  • SQL Server 2012 RTM zum aktuellen SP/CU
  • SQL Server 2014 RTM zum aktuellen SP/CU
Keine
  • Der Abschluss von Statistikaufträgen dauert sehr lange.
  • Mehrere Aktualisierungsaufträge für Statistiken können nicht parallel ausgeführt werden.
T7471 SQL Server 2014 SP1 CU6 zu aktuellem SP/CU Keine Steigern der Leistung von Updatestatistiken mit SQL 2014 & SQL 2016
Der CHECKDB-Befehl nimmt für große Datenbanken eine lange Zeit in Anspruch.
  • T2562
  • T2549
    • SQL Server 2012 RTM zum aktuellen SP/CU
    • SQL Server 2014 RTM zum aktuellen SP/CU
    Keine
    Der CHECKDB-Befehl nimmt für große Datenbanken eine lange Zeit in Anspruch. T2566
    • SQL Server 2012 RTM zum aktuellen SP/CU
    • SQL Server 2014 RTM zum aktuellen SP/CU
    Keine
    Ausführen gleichzeitiger Data Warehouse-Abfragen, die lange Kompilierungszeit in RESOURCE_SEMAPHORE_QUERY_COMPILE Wartezeiten erfordern. T6498 Kumulatives Updatepaket 6 für SQL Server 2014 auf SP1
    • SQL Server 2014 SP2 auf aktuelle SP/CUSQL
    • Server 2016 RTM zum aktuellen SP/CU
    • SQL Server 2017 RTM zu aktuellem SP/CU
    Sie behandeln bestimmte Probleme mit der Abfrageleistung, da Optimiererfixes standardmäßig deaktiviert sind. T4199
    • SQL Server 2012 RTM zu SP4
    • SQL Server 2014 RTM auf den neuesten Stand
    Keine
    Bei Abfragevorgängen mit räumlichen Datentypen ist die Leistung langsam.
    • T6532
    • T6533
    • T6534
    • SQL Server 2012 SP3 zu aktuellem SP/CU
    • SQL Server 2014 SP2 zum aktuellen SP/CU
      • SQL Server 2016 RTM zum aktuellen SP/CU
      • SQL Server 2017 RTM zu aktuellem SP/CU
        • Abfragen werden SOS_MEMORY_TOPLEVELBLOCKALLOCATOR gefunden, und CMEMTHREAD wartet.
        • Es ist wenig virtueller Adressraum für den SQL Server Prozess verfügbar.
        T8075
        • SQL Server 2012 SP2 CU8 zu aktuellem SP/CU
        • SQL Server 2014 RTM CU10 zu aktuellem SP/CU
        • SQL Server 2016 RTM zum aktuellen SP/CU
        • SQL Server 2017 RTM zu aktuellem SP/CU
        FIX: Fehler bei nicht genügend Arbeitsspeicher, wenn der virtuelle Adressraum des SQL Server-Prozesses in SQL Server
        • SQL Server wird auf einem Computer mit viel Arbeitsspeicher installiert.
        • Das Erstellen neuer Datenbanken dauert sehr lange.
        T3449
        • SQL Server 2012 SP3 CU3 zu aktuellem SP/CU
        • SQL Server 2014 RTM CU14 zum aktuellen RTM CU
        • SQL Server 2014 SP1 CU7 zu aktuellem SP/CU
        • SQL Server 2016 RTM zum aktuellen SP/CU
        • SQL Server 2017 RTM zu aktuellem SP/CU
        FIX: SQL Server Datenbankerstellung auf einem System mit viel Arbeitsspeicher dauert länger als erwartet

        Tabelle 2. Allgemeine Überlegungen und bewährte Methoden zur Verbesserung der Leistung Ihrer Instanz von SQL Server

        Überprüfen Sie die Inhalte in der Spalte "Knowledge Base-Artikel/Books Online-Ressourcen", und erwägen Sie die Implementierung der Anleitungen in der Spalte "Empfohlene Aktionen".

        Knowledge Base-Artikel/Books Online-Ressource Empfohlene Aktionen
        Konfigurieren des maximalen Grads der Parallelität der Serverkonfigurationsoption Verwenden Sie die sp_configure gespeicherte Prozedur, um Konfigurationsänderungen vorzunehmen, um die Serverkonfigurationsoption für den maximalen Grad der Parallelität für Ihre Instanz von SQL Server gemäß dem Knowledge Base-Artikel zu konfigurieren.
        Berechnen von Kapazitätsgrenzen nach Edition von SQL Server Enterprise Edition mit Server + Client Access License (CAL)-Lizenzierung ist auf 20 Kerne pro SQL Server Instanz beschränkt. Das Core-basierte Serverlizenzierungsmodell enthält keine Beschränkungen. Erwägen Sie, Ihre Edition von SQL Server auf die entsprechende SKU zu aktualisieren, um alle Hardwareressourcen zu nutzen.
        Langsame Leistung auf Windows Server bei Verwendung des Energieplans "Ausgeglichen" Lesen Sie den Artikel, und wenden Sie sich an Ihren Windows Administrator, um eine der Lösungen zu implementieren, die im Abschnitt "Lösung" des Artikels aufgeführt sind.
        Manuelles Zuweisen von NUMA-Knoten zu K-Gruppen.
        Optimieren für Ad-hoc-Workloads FORCED PARAMETRISIERUNG Einträge im Plancache werden aufgrund des Wachstums in anderen Caches oder Speichermitarbeitern gelöscht. Möglicherweise tritt auch eine Plancache-Eviction auf, wenn der Cache die maximale Anzahl von Einträgen erreicht. Berücksichtigen Sie neben dem oben beschriebenen Ablaufverfolgungskennzeichen 8032 auch die Optimierung für die Serveroption "Ad-hoc-Workloads" und die Datenbankoption "FORCED PARAMETERIZATION".
        So reduzieren Sie das Paging des Pufferpoolspeichers in SQL Server Speicherkonfigurations- und Größenüberlegungen in SQL Server 2012 und höher Weisen Sie dem Startkonto des SQL Diensts die Berechtigung zum Aktivieren der Option "Seiten im Speicher sperren" (Windows) zu. Weitere Informationen zum Aktivieren der Funktion "Gesperrte Seiten" in SQL Server 2012. Legen Sie den maximalen Serverspeicher auf ca. 90 Prozent des gesamten physischen Speichers fest. Stellen Sie sicher, dass die Serverspeicherkonfigurationsoptionen nur Speicher von den Knoten, die für die Verwendung von Affinitätsmaskeneinstellungen konfiguriert sind, konten.
        SQL Server und große Seiten erläutert... Optimierungsoptionen für SQL Server bei der Ausführung in Arbeitslasten mit hoher Leistung Erwägen Sie die Aktivierung von TF 834, wenn Sie über einen Server mit einer großen Speichermenge verfügen, insbesondere mit einer Analyse- oder Datenlast. Beachten Sie, dass TF 834 nicht empfohlen wird, wenn Sie Columnstore-Indizes verwenden.
        Beschreibung der Optionen "Anzahl der Zugriffsüberprüfungscache-Buckets" und "Cachekontingent für Zugriffsüberprüfungen", die in der sp_configure gespeicherten Prozedur verfügbar sind Verwenden Sie die Konfigurationsoptionen für den Zugriffsüberprüfungscacheserver, um diese Werte gemäß den Empfehlungen im Knowledge Base-Artikel zu konfigurieren. Empfohlene Werte für High-End-Systeme sind:
        "Anzahl der Zugriffsüberprüfungscache-Buckets": 256
        "Cachekontingent für Zugriffsüberprüfung": 1024

        Abfragehinweise zur Alter WORKLOAD GROUP-Speichererteilung Wenn Sie viele Abfragen haben, die große Speichererstreichungen aufgebraucht haben, reduzieren Sie request_max_memory_grant_percent die Anzahl der Standardarbeitsauslastungsgruppen in der Konfiguration des Ressourcenausgleichs von 25 % auf einen niedrigeren Wert. Neue Optionen für die Gewährung von Abfragespeicher sind in SQL Server verfügbar ( min_grant_percent und max_grant_percent )
        Sofortige Dateiinitialisierung Arbeiten Sie mit Ihrem Windows-Administrator zusammen, um dem SQL Server-Dienstkonto das Benutzerrecht "Volume Maintenance Tasks ausführen" gemäß den Informationen im Thema "Bücher Online" zu gewähren.
        Überlegungen zu den Einstellungen "autogrow" und "autoshrink" in SQL Server Überprüfen Sie die aktuellen Einstellungen Ihrer Datenbank, und stellen Sie sicher, dass sie gemäß den Empfehlungen im Knowledge Base-Artikel konfiguriert sind.
        Datenbankprüfpunkte (SQL Server) Erwägen Sie, indirekte Prüfpunkte in Benutzerdatenbanken zu aktivieren, um das E/A-Verhalten in SQL Server 2012 und 2014 zu optimieren.
        FIX: Langsame Synchronisierung, wenn Datenträger unterschiedliche Sektorgrößen für primäre und sekundäre Replikatprotokolldateien in SQL Server AG- und Logshipping-Umgebungen haben Wenn Sie über eine Verfügbarkeitsgruppe verfügen, bei der sich das Transaktionsprotokoll des primären Replikats auf einem Datenträger mit einer Sektorgröße von 512 Byte befindet und sich das Transaktionsprotokoll des sekundären Replikats auf einem Laufwerk mit 4K-Sektorgröße befindet, liegt möglicherweise ein Problem vor, bei dem die Synchronisierung langsam ist. In diesen Fällen sollte das Problem durch Aktivieren von TF 1800 behoben werden.
        Wenn Ihre SQL Server noch nicht CPU-gebunden ist und ein Mehraufwand von 1,5 % bis 2 % für Ihre Workloads gering ist, empfehlen wir, TF 7412 als Startablaufverfolgungskennzeichen zu aktivieren. Dieses Flag ermöglicht eine einfache Profilerstellung in SQL Server 2014 SP2 oder höher, sodass Sie in Produktionsumgebungen Eine Problembehandlung bei Liveabfragen durchführen können.

        Tabelle 3. Leistungskorrekturen, die in einem kumulativen Update enthalten sind

        Überprüfen Sie die Beschreibung in der Spalte "Symptome", und wenden Sie die erforderlichen Updates in der Spalte "Erforderliche Updates" in den entsprechenden Umgebungen an. Weitere Informationen zu den jeweiligen Problemen finden Sie im Knowledge Base-Artikel. Für diese Empfehlungen müssen Sie keine zusätzlichen Ablaufverfolgungsflags als Startparameter aktivieren. Das anwenden des neuesten kumulativen Updates oder Service Packs, das diese Fixes enthält, reicht aus, um den Vorteil zu erhalten.

        Hinweis

        Der CU-Name in der Spalte "Required update" stellt das erste kumulative Update von SQL Server bereit, mit dem dieses Problem behoben wird. Ein kumulatives Update enthält alle Hotfixes und alle Updates, die in der vorherigen SQL Server Updateversion enthalten waren. Daher wird empfohlen, das neueste kumulative Update zu installieren, um die Probleme zu beheben.

        Problembeschreibung Erforderliches Update Knowledge Base-Artikel
        Begierige Schreibvorgänge während der Auswahl in temporäre Tabellen verursachen Leistungsprobleme. SQL Server 2012 SP2 CU1
        SQL Server 2012 SP1 CU10
        FIX: Schlechte Leistung bei E/A, wenn Sie select in temporary table operation in SQL Server 2012 ausführen
        Sie stoßen PWAIT_MD_RELATION_CACHE oder MD_LAZYCACHE_RWLOCK warten, nachdem ein ALTER INDEX ... ONLINE Abfragevorgang abgebrochen wurde. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU9
        FIX: Die Leistung nimmt nach einem ALTER INDEX ab... DER ONLINE-Vorgang wird in SQL Server 2012 oder SQL Server 2014 abgebrochen.
        Abfragen führen bei der Standardversion des Produkts plötzlich zu einer schlechten Leistung. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        FIX: Threads sind in SQL Server 2012 oder SQL Server 2014 nicht gleichmäßig geplant Standard Edition
        Langsame Leistung aufgrund eines plötzlichen Seitenlebensverlusts. SQL Server 2012 SP1 CU4 FIX: Möglicherweise treten in SQL Server 2012 Leistungsprobleme auf.
        Hohe CPU-Auslastung durch Ressourcenmonitor auf Systemen mit NUMA-Konfiguration, großem Arbeitsspeicher und "max. Serverspeicher" auf einen niedrigen Wert festgelegt. SQL Server 2012 SP1 CU3 FIX: CPU-Spitzen, wenn nach der Installation von SQL Server 2012 auf dem Server keine Last auf einem Server vorhanden ist
        Nicht-yielding scheduler while allocation memory for sort runs associated large memory grants on systems with large amount of memory installed. SQL Server 2012 SP1 CU2 FIX: Fehler 17883 beim Ausführen einer Abfrage auf einem Server mit vielen CPUs und viel Arbeitsspeicher in SQL Server 2012 oder in SQL Server 2008 R2
        Nicht ergiebender Scheduler, wenn der Sortieroperator viele Buckets im Pufferpool auf Systemen mit großem Arbeitsspeicher durchläuft. SQL Server 2012 SP1 CU1 FIX: Fehlermeldung "Prozess scheint bei Scheduler nicht zu liefern" beim Ausführen einer Abfrage in SQL Server 2012
        Hohe CPU-Auslastung, wenn Sie gleichzeitige Abfragen ausführen, die eine lange Kompilierung auf Systemen mit mehreren NUMA-Knoten und vielen Kernen erfordern. SQL Server 2012 SP2 CU1
        SQL Server 2014 RTM CU2
        FIX: Intensive Abfragekompilierungsworkloads werden nicht mit einer wachsenden Anzahl von Kernen auf NUMA-Hardware skaliert und führt zu einer CPU-Sättigung in SQL Server
        Speicherzuweisungen für Sortieroperatoren dauern aufgrund von Zuordnungen von Remoteknoten auf NUMA-Systemen mit großem Arbeitsspeicher sehr lange. SQL Server 2012 SP1 CU3 FIX: SQL Server Leistungsprobleme in NUMA-Umgebungen
        Fehler aufgrund unzureichenden Arbeitsspeichers, wenn SQL Server auf einem NUMA-Computer mit großer Menge RAM installiert ist und SQL Server über viele fremde Seiten verfügt. SQL Server 2012 RTM CU1 FIX: Fehler bei nicht genügend Arbeitsspeicher, wenn Sie eine Instanz von SQL Server 2012 auf einem Computer ausführen, der NUMA verwendet
        Drehlockkonflikt beim SOS_CACHESTORE SOS_SELIST_SIZED_SLOCK Erstellen eines Indexes für den räumlichen Datentyp in einer großen Tabelle. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        FIX: Langsame Leistung in SQL Server 2012 oder SQL Server 2014 beim Erstellen eines Indexes für einen räumlichen Datentyp einer großen Tabelle
        Hoher CMEMTHREAD-Wartetyp, wenn Sie einen Index für einen räumlichen Datentyp in großen Tabellen erstellen. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        FIX: Langsame Leistung in SQL Server beim Erstellen eines Indexes für einen räumlichen Datentyp einer großen Tabelle in einer SQL Server 2012- oder SQL Server 2014-Instanz
        Leistungsprobleme aufgrund von SOS_PHYS_PAGE_CACHE und CMEMTHREAD wartet während der Speicherzuweisung auf Computern mit großem Arbeitsspeicher. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU9
        FIX: Leistungsprobleme treten in NUMA-Umgebungen während der Verarbeitung fremder Seiten in SQL Server 2012 oder SQL Server 2014 auf.
        Der CHECKDB-Befehl nimmt für große Datenbanken eine lange Zeit in Anspruch. Kumulatives Updatepaket 6 für SQL Server 2014 FIX: Der DBCC CHECKDB/CHECKTABLE-Befehl kann in SQL Server 2012 oder SQL Server 2014 länger dauern.

        Wichtige Hinweise:

        Informationsquellen

        Gilt für

        • SQL Server 2014 Enterprise
        • SQL Server 2014 Enterprise Core
        • SQL Server 2014 Business Intelligence
        • SQL Server 2014 Developer
        • SQL Server 2014 Standard
        • SQL Server 2014 Web
        • SQL Server 2014 Express
        • SQL Server 2012 Business Intelligence
        • SQL Server 2012 Developer
        • SQL Server 2012 Enterprise
        • SQL Server 2012 Standard
        • SQL Server 2012 Web
        • SQL Server 2012 Enterprise Core