Dela via


Rekommenderade uppdateringar och konfigurationsalternativ för SQL Server med högpresterande arbetsbelastningar

Den här artikeln innehåller en lista över prestandaförbättringar och konfigurationsalternativ som är tillgängliga för SQL Server 2012 och senare versioner.

Ursprunglig produktversion: SQL Server 2014, SQL Server 2012
Ursprungligt KB-nummer: 2964518

Den här artikeln beskriver prestandaförbättringar och ändringar som är tillgängliga för SQL Server 2014- och SQL Server 2012-versioner via olika produktuppdateringar och konfigurationsalternativ. Du kan överväga att tillämpa de här uppdateringarna för att förbättra prestanda för instansen av SQL Server. Vilken förbättringsgrad du ser beror på olika faktorer som arbetsbelastningsmönster, konkurrenspunkter, processorlayout (antal processorgrupper, socketar, NUMA-noder, kärnor i en NUMA-nod) och mängden minne som finns i systemet. SQL Server-supportteamet har använt dessa uppdateringar och konfigurationsändringar för att uppnå rimliga prestandavinster för kundarbetsbelastningar som använde maskinvarusystem som hade flera NUMA-noder och många processorer. Supportteamet fortsätter att uppdatera den här artikeln med andra uppdateringar i framtiden.

Avancerade system Ett high-end-system har vanligtvis flera socketar, åtta kärnor eller mer per socket och en halv terabyte eller mer minne.

Kommentar

I SQL Server 2016 och senare versioner är många av de spårningsflaggor som nämns i den här artikeln standardbeteendet och du behöver inte aktivera dem i dessa versioner.

Rekommendationerna grupperas i tre tabeller enligt följande:

  • Tabell 1 innehåller de vanligaste rekommenderade uppdateringarna och spårningsflaggor för skalbarhet i avancerade system.
  • Tabell 2 innehåller rekommendationer och vägledning för ytterligare prestandajustering.
  • Tabell 3 innehåller ytterligare skalbarhetskorrigeringar som inkluderades tillsammans med en kumulativ uppdatering.

Tabell 1. Viktiga uppdateringar och spårningsflaggor för avancerade system

Granska följande tabell och aktivera spårningsflaggor i kolumnen Spårningsflagga när du har kontrollerat att din instans av SQL Server uppfyller kraven i kolumnen Tillämpliga versions- och byggintervall.

Kommentar

  • Tillämplig version och version anger den specifika uppdatering där ändrings- eller spårningsflaggan introducerades. Om ingen CU anges inkluderas alla CU:er i SP.

  • Inte tillämplig version och version anger den specifika uppdatering där ändrings- eller spårningsflaggan blev standardbeteendet. Därför räcker det med att bara tillämpa uppdateringen för att få fördelarna.

Viktigt!

När du aktiverar korrigeringar med spårningsflaggor i AlwaysOn-miljöer bör du vara medveten om att du måste aktivera korrigerings- och spårningsflaggor på alla repliker som ingår i tillgänglighetsgruppen.

Scenario och symptom att tänka på Spårningsflagga Tillämpliga versions- och byggintervall Inte tillämpligt versions- och byggintervall Kunskapsbasartikel/blogglänk som innehåller mer information
  • Du får höga CMEMTHREAD-väntetider.
  • SQL Server installeras på system med 8 eller fler kärnor per socket.
T8048
  • SQL Server 2012 RTM till aktuellt Service Pack (SP)/CU
  • SQL Server 2014 RTM till SP1
  • SQL Server 2014 SP2 till aktuell SP/CU
  • SQL Server 2016 RTM till aktuell SP/CU
  • SQL Server 2017 RTM till aktuell SP/CU
  • Du får höga CMEMTHREAD-väntetider.
  • SQL Server installeras på system med 8 eller fler kärnor per socket.
T8079 SQL Server 2014 SP2 till aktuell SP/CU
  • SQL Server 2016 RTM till aktuell SP/CU
  • SQL Server 2017 RTM till aktuell SP/CU
  • Du använder funktioner som förlitar sig på loggpoolens cacheminne. (till exempel Always On)
  • SQL Server är installerat på system med flera socketar.
T9024 Kumulativt uppdateringspaket 3 för SQL Server 2012 Service Pack 1 till SP2 SQL Server 2014 RTM
  • SQL Server 2012 SP3 till aktuell SP/CUSQL
  • Server 2014 SP1 till aktuell SP/CU
  • SQL Server 2016 RTM till aktuell SP/CU
  • SQL Server 2017 RTM till aktuell SP/CU
KORRIGERING: Högt "loggskrivning väntar"-räknarvärde på en SQL Server 2012- eller SQL Server 2014-instans
Din instans av SQL Server hanterar tusentals anslutningsåterställningar på grund av anslutningspooler. T1236 Kumulativt uppdateringspaket 9 för SQL Server 2012 Service Pack 1 till SP2 Kumulativ uppdatering 1 för SQL Server 2014
  • SQL Server 2012 SP3 till aktuell SP/CUSQL
  • Server 2014 SP1 till aktuell SP/CUSQL
  • Server 2016 RTM till aktuell SP/CU
  • SQL Server 2017 RTM till aktuell SP/CU
  • Din programarbetsbelastning omfattar frekvent tempdb-användning (skapande och släpp av temporära tabeller eller tabellvariabler).
  • Du ser användarbegäranden som väntar på tempdb-sidresurser på grund av allokeringskonkurration.
T1118
  • SQL Server 2012 RTM till aktuell SP/CU
  • SQL Server 2014 RTM till aktuell SP/CU
  • SQL Server 2016 RTM till aktuell SP/CU
  • SQL Server 2017 RTM till aktuell SP/CU
Samtidighetsförbättringar för tempdb-databasen

OBS! Aktivera spårningsflaggan och lägg till flera datafiler för tempdb-databasen.
  • Du har flera tempdb-datafiler.
  • Datafilerna i början är inställda på samma storlek.
  • På grund av hög aktivitet uppstår tillväxt i tempdb-filer och inte alla filer växer samtidigt och orsakar allokeringskonkurration.
T1117
  • SQL Server 2012 RTM till aktuell SP/CU
  • SQL Server 2014 RTM till aktuell SP/CU
  • SQL Server 2016 RTM till aktuell SP/CU
  • SQL Server 2017 RTM till aktuell SP/CU
Rekommendationer för att minska allokeringskonkurrensen i tempdb-databasen i SQL Server.
Hård SOS_CACHESTORE spinlockkonkurring eller dina planer avlägsnas ofta på ad hoc-frågearbetsbelastningar. T174 Ingen
  • Poster i plancachen avlägsnas på grund av tillväxt i andra cacheminnen eller minnesbiträden
  • Hög CPU-förbrukning på grund av frekvent omkompilering av frågor
T8032
  • SQL Server 2012 RTM till aktuell SP/CU
  • SQL Server 2014 RTM till aktuell SP/CU
Ingen
Befintlig statistik uppdateras inte ofta på grund av det stora antalet rader i tabellen. T2371
  • SQL Server 2012 RTM till aktuell SP/CU
  • SQL Server 2014 RTM till aktuell SP/CU
Ingen
  • Det tar lång tid att slutföra statistikjobb.
  • Det går inte att köra flera statistikuppdateringsjobb parallellt.
T7471 SQL Server 2014 SP1 CU6 till aktuell SP/CU Ingen Förbättra prestanda för uppdateringsstatistik med SQL 2014 och SQL 2016
CHECKDB-kommandot tar lång tid för stora databaser.
  • T2562
  • T2549
    • SQL Server 2012 RTM till aktuell SP/CU
    • SQL Server 2014 RTM till aktuell SP/CU
    Ingen
    CHECKDB-kommandot tar lång tid för stora databaser. T2566
    • SQL Server 2012 RTM till aktuell SP/CU
    • SQL Server 2014 RTM till aktuell SP/CU
    Ingen
    Körning av samtidiga informationslagerfrågor som tar lång kompileringstid resulterar i RESOURCE_SEMAPHORE_QUERY_COMPILE väntetider. T6498 Kumulativt uppdateringspaket 6 för SQL Server 2014 till SP1
    • SQL Server 2014 SP2 till aktuell SP/CUSQL
    • Server 2016 RTM till aktuell SP/CU
    • SQL Server 2017 RTM till aktuell SP/CU
    Du felsöker specifika problem med frågeprestanda som Optimizer-korrigeringar är inaktiverade som standard. T4199
    • SQL Server 2012 RTM till SP4
    • SQL Server 2014 RTM till senaste
    Ingen
    Du får långsamma prestanda med hjälp av frågeåtgärder med spatiala datatyper.
    • T6532
    • T6533
    • T6534
    • SQL Server 2012 SP3 till aktuell SP/CU
    • SQL Server 2014 SP2 till aktuell SP/CU
      • SQL Server 2016 RTM till aktuell SP/CU
      • SQL Server 2017 RTM till aktuell SP/CU
        • Frågor uppstår SOS_MEMORY_TOPLEVELBLOCKALLOCATOR och CMEMTHREAD väntar.
        • Det finns lite tillgängligt virtuellt adressutrymme för SQL Server-processen.
        T8075
        • SQL Server 2012 SP2 CU8 till aktuell SP/CU
        • SQL Server 2014 RTM CU10 till aktuell SP/CU
        • SQL Server 2016 RTM till aktuell SP/CU
        • SQL Server 2017 RTM till aktuell SP/CU
        KORRIGERING: Fel om slut på minne när det virtuella adressutrymmet i SQL Server-processen är lågt i SQL Server
        • SQL Server installeras på en dator med stora mängder minne.
        • Det tar lång tid att skapa nya databaser.
        T3449
        • SQL Server 2012 SP3 CU3 till aktuell SP/CU
        • SQL Server 2014 RTM CU14 till aktuell RTM CU
        • SQL Server 2014 SP1 CU7 till aktuell SP/CU
        • SQL Server 2016 RTM till aktuell SP/CU
        • SQL Server 2017 RTM till aktuell SP/CU
        KORRIGERING: Det tar längre tid än förväntat att skapa SQL Server-databaser i ett system med en stor mängd minne

        Tabell 2. Allmänna överväganden och metodtips för att förbättra prestanda för din instans av SQL Server

        Granska innehållet i kunskapsbasartikeln/kolumnen Böcker onlineresurs och överväg att implementera vägledningen i kolumnen Rekommenderade åtgärder.

        Kunskapsbasartikel/Books Online-resurs Rekommenderade åtgärder
        Konfigurera den maximala graden av parallellitet serverkonfigurationsalternativ Använd den sp_configure lagrade proceduren för att göra konfigurationsändringar för att konfigurera den maximala graden av parallellitet serverkonfigurationsalternativ för din instans av SQL Server enligt artikeln Kunskapsbas.
        Beräkningskapacitetsbegränsningar per utgåva av SQL Server Enterprise Edition med licensiering för Server + Klientåtkomstlicens (CAL) är begränsad till 20 kärnor per SQL Server-instans. Det finns inga gränser i den Core-baserade serverlicensieringsmodellen. Överväg att uppgradera din utgåva av SQL Server till lämplig SKU för att utnyttja alla maskinvaruresurser.
        Långsamma prestanda på Windows Server när du använder power plan "Balanced" Läs artikeln och samarbeta med Windows-administratören för att implementera en av de lösningar som anges i avsnittet "Lösning" i artikeln.
        Tilldela NUMA-noder manuellt till K-grupper.
        Optimera för ad hoc-arbetsbelastningar TVINGAD PARAMETERISERING Poster i plancachen avlägsnas på grund av tillväxt i andra cacheminnen eller minnesbiträden. Du kan också stöta på borttagning av plancache när cachen når det maximala antalet poster. Utöver spårningsflagga 8032 som beskrivs ovan bör du överväga alternativet optimera för ad hoc-arbetsbelastningar och även databasalternativet FORCED PARAMETERIZATION .
        Så här minskar du växlingen av buffertpoolsminne i SQL Server-minneskonfiguration och storleksöverväganden i SQL Server 2012 och senare versioner Tilldela användaren Aktivera alternativet Lås sidor i minne (Windows) rätt till SQL-tjänstens startkonto. Se Aktivera funktionen "låsta sidor" i SQL Server 2012. Ange maximalt serverminne till cirka 90 procent av det totala fysiska minnet. Kontrollera att konfigurationsalternativen för serverminne endast anger konton för minne från de noder som har konfigurerats för att använda tillhörighetsmaskinställningar.
        SQL Server och stora sidor förklaras... Justeringsalternativ för SQL Server vid körning i arbetsbelastningar med höga prestanda Överväg att aktivera TF 834 om du har en server med en stor mängd minne, särskilt med en arbetsbelastning för analys eller datalager. Tänk på att TF 834 inte rekommenderas om du använder kolumnlagringsindex.
        Beskrivning av alternativen "antal cacheminnen för åtkomstkontroll" och "åtkomstkontroll av cachekvot" som är tillgängliga i den sp_configure lagrade proceduren Använd serverkonfigurationsalternativ för åtkomstkontroll för att konfigurera dessa värden enligt rekommendationerna i artikeln Kunskapsbas. Rekommenderade värden för avancerade system är följande:
        "antal cacheminnen för åtkomstkontroll": 256
        "åtkomstkontroll av cachekvot": 1024

        Alter WORKLOAD GROUP Memory grant query hints Om du har många frågor som uttömmer stora minnestilldelningar minskar request_max_memory_grant_percent du för standardarbetsbelastningsgruppen i konfigurationen av resursguvernören från standardvärdet 25 procent till ett lägre värde. Nya alternativ för att bevilja frågeminne är tillgängliga (min_grant_percent och max_grant_percent) i SQL Server
        Instant File-initiering Kontakta Windows-administratören för att ge SQL Server-tjänstkontot användarbehörigheten "Utför volymunderhållsuppgifter" enligt informationen i avsnittet Böcker online.
        Överväganden för inställningarna "autogrow" och "autoshrink" i SQL Server Kontrollera de aktuella inställningarna för databasen och se till att de är konfigurerade enligt rekommendationerna i kunskapsbasartikeln.
        Databaskontrollpunkter (SQL Server) Överväg att aktivera indirekta kontrollpunkter i användardatabaser för att optimera I/O-beteendet i SQL Server 2012 och 2014.
        KORRIGERING: Långsam synkronisering när diskar har olika sektorstorlekar för primära och sekundära replikloggfiler i SQL Server AG- och Logshipping-miljöer Om du har en tillgänglighetsgrupp där transaktionsloggen på den primära repliken finns på en disk med sektorstorleken 512 byte och den sekundära replikens transaktionslogg finns på en enhet med sektorstorleken 4 000 kan det uppstå ett problem där synkroniseringen är långsam. I dessa fall bör aktivering av TF 1800 korrigera problemet. Mer information finns i Spårningsflagga 1800.
        Om DIN SQL Server inte redan är CPU-bunden och omkostnaderna på 1,5 till 2 % är försumbara för dina arbetsbelastningar rekommenderar vi att du aktiverar TF 7412 som en startspårningsflagga. Den här flaggan möjliggör enkel profilering i SQL Server 2014 SP2 eller senare, vilket ger dig möjlighet att utföra felsökning av livefrågor i produktionsmiljöer.

        Tabell 3. Prestandakorrigeringar som ingår i en kumulativ uppdatering

        Granska beskrivningen i kolumnen Symptom och tillämpa de nödvändiga uppdateringarna i kolumnen Nödvändig uppdatering i tillämpliga miljöer. Du kan läsa kunskapsbasartikeln för mer information om respektive problem. Dessa rekommendationer kräver inte att du aktiverar ytterligare spårningsflaggor som startparametrar. Att bara tillämpa den senaste kumulativa uppdateringen eller Service Pack som innehåller dessa korrigeringar räcker för att få förmånen.

        Kommentar

        CU-namnet i kolumnen Nödvändig uppdatering innehåller den första kumulativa uppdateringen av SQL Server som löser problemet. En kumulativ uppdatering innehåller alla snabbkorrigeringar och alla uppdateringar som ingick i den tidigare VERSIONEN av SQL Server-uppdateringen. Därför rekommenderar vi att du installerar den senaste kumulativa uppdateringen för att lösa problemen.

        Symptom Nödvändig uppdatering Kunskapsbasartikel
        Ivriga skrivningar under Select-into för temporära tabeller orsakar prestandaproblem. SQL Server 2012 SP2 CU1
        SQL Server 2012 SP1 CU10
        KORRIGERING: Dåliga prestanda för I/O när du kör välj till tillfällig tabellåtgärd i SQL Server 2012
        Du stöter på PWAIT_MD_RELATION_CACHE eller MD_LAZYCACHE_RWLOCK väntar efter att en ALTER INDEX ... ONLINE frågeåtgärd har avbrutits. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU9
        KORRIGERING: Prestandan minskar efter ett ALTER INDEX... ONLINE-åtgärden avbryts i SQL Server 2012 eller SQL Server 2014
        Frågor presterar plötsligt dåligt på standardversionen av produkten. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        KORRIGERING: Trådar schemaläggs inte jämnt i SQL Server 2012 eller SQL Server 2014 Standard Edition
        Långsamma prestanda på grund av en plötslig minskning av förväntad sidlivslängd. SQL Server 2012 SP1 CU4 KORRIGERING: Det kan uppstå prestandaproblem i SQL Server 2012
        Hög CPU-användning per resursövervakare på system med NUMA-konfiguration, stort minne och "maximalt serverminne" inställt på ett lågt värde. SQL Server 2012 SP1 CU3 KORRIGERING: CPU-topp när det inte finns någon belastning på en server när du har installerat SQL Server 2012 på servern
        Icke-givande scheduler medan allokeringsminne för sorteringskörningar associerar stora minnestilldelningar på system med stor mängd minne installerat. SQL Server 2012 SP1 CU2 KORRIGERING: Fel 17883 när du kör en fråga på en server som har många processorer och en stor mängd minne i SQL Server 2012 eller i SQL Server 2008 R2
        Icke-avkastningsschemaläggare när sorteringsoperatorn passerar många bucketar i buffertpoolen på system med stort minne. SQL Server 2012 SP1 CU1 KORRIGERING: "Processen verkar inte ge resultat i Scheduler" felmeddelande när du kör en fråga i SQL Server 2012
        Hög CPU-användning när du kör samtidiga frågor som tar lång tid att kompilera på system med flera NUMA-noder och många kärnor. SQL Server 2012 SP2 CU1
        SQL Server 2014 RTM CU2
        KORRIGERING: Intensiv frågekompileringsarbetsbelastning skalas inte med ett växande antal kärnor på NUMA-maskinvara och resulterar i CPU-mättnad i SQL Server
        Det tar lång tid att slutföra minnesallokeringar för sorteringsoperatorer på NUMA-system med stort minne på grund av allokering av fjärrnoder. SQL Server 2012 SP1 CU3 ÅTGÄRDAT: Prestandaproblem med SQL Server i NUMA-miljöer
        Minnesfel när SQL Server installeras på en NUMA-dator med stora mängder RAM-minne och SQL Server har många externa sidor. SQL Server 2012 RTM CU1 KORRIGERING: Fel om slut på minne när du kör en instans av SQL Server 2012 på en dator som använder NUMA
        Spinlock-konkurrens på SOS_CACHESTORE och SOS_SELIST_SIZED_SLOCK när du skapar ett index för rumslig datatyp i en stor tabell. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        KORRIGERING: Långsamma prestanda i SQL Server 2012 eller SQL Server 2014 när du skapar ett index på en rumslig datatyp i en stor tabell
        Hög CMEMTHREAD-väntetyp när du skapar ett index på en rumslig datatyp i stora tabeller. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        KORRIGERING: Långsamma prestanda i SQL Server när du skapar ett index för en rumslig datatyp för en stor tabell i en SQL Server 2012- eller SQL Server 2014-instans
        Prestandaproblem på grund av SOS_PHYS_PAGE_CACHE och CMEMTHREAD väntar under minnesallokering på datorer med stort minne. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU9
        ÅTGÄRDAT: Prestandaproblem uppstår i NUMA-miljöer under sekundär sidbearbetning i SQL Server 2012 eller SQL Server 2014
        CHECKDB-kommandot tar lång tid för stora databaser. Kumulativt uppdateringspaket 6 för SQL Server 2014 KORRIGERING: KOMMANDOT DBCC CHECKDB/CHECKTABLE kan ta längre tid i SQL Server 2012 eller SQL Server 2014

        Viktiga meddelanden

        Referenser

        Gäller 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