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
Tillämpa de rekommenderade uppdateringarna och förbättra prestanda för SQL Server 2014 och SQL Server 2012
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 |
---|---|---|---|---|
|
T8048 |
|
|
|
|
T8079 | SQL Server 2014 SP2 till aktuell SP/CU |
|
|
|
T9024 | Kumulativt uppdateringspaket 3 för SQL Server 2012 Service Pack 1 till SP2 SQL Server 2014 RTM |
|
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 |
|
|
|
T1118 |
|
|
Samtidighetsförbättringar för tempdb-databasen OBS! Aktivera spårningsflaggan och lägg till flera datafiler för tempdb-databasen. |
|
T1117 |
|
|
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 |
|
|
T8032 |
|
Ingen |
|
Befintlig statistik uppdateras inte ofta på grund av det stora antalet rader i tabellen. | T2371 |
|
Ingen | |
|
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. |
|
|
Ingen | |
CHECKDB-kommandot tar lång tid för stora databaser. | T2566 |
|
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 |
|
|
Du felsöker specifika problem med frågeprestanda som Optimizer-korrigeringar är inaktiverade som standard. | T4199 |
|
Ingen | |
Du får långsamma prestanda med hjälp av frågeåtgärder med spatiala datatyper. |
|
|
|
|
|
T8075 |
|
|
KORRIGERING: Fel om slut på minne när det virtuella adressutrymmet i SQL Server-processen är lågt i SQL Server |
|
T3449 |
|
|
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.
Viktiga meddelanden
Om alla villkor i tabell 1 gäller för dig:
- Vägledning för SQL Server 2014: Tillämpa minst kumulativ uppdatering 1 för SQL Server 2014 för RTM och lägg till "-T8048 -T9024 -T1236 -T1117 -T1118" i SQL Server-startparameterlistan.
- Vägledning för SQL Server 2012: Använd SP2 och lägg till "-T8048 -T9024 -T1236 -T1117 -T1118" i SQL Server-startparameterlistan.
Allmän information om hur du använder spårningsflaggor finns i avsnittet DBCC TRACEON – Trace Flags (Transact-SQL) i SQL Server Books Online.
Du hittar mer information om antalet processorer, NUMA-konfiguration och så vidare i visa SQL Server-felloggen i SQL Server Management Studio (SSMS).
Kontrollera följande för att hitta versionen av SQL Server:
Så här avgör du version och utgåva av SQL Server och dess komponenter
Referenser
Var du hittar information om de senaste SQL Server-versionerna
SQL Server-communityresurser om viktiga uppdateringar för SQL Server
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