Delen via


Aanbevolen updates en configuratieopties voor SQL Server met werkbelastingen met hoge prestaties

Dit artikel bevat een lijst met prestatieverbeteringen en configuratieopties die beschikbaar zijn voor SQL Server 2012 en latere versies.

Oorspronkelijke productversie: SQL Server 2014, SQL Server 2012
Origineel KB-nummer: 2964518

In dit artikel worden de prestatieverbeteringen en wijzigingen beschreven die beschikbaar zijn voor SQL Server 2014- en SQL Server 2012-versies via verschillende productupdates en configuratieopties. U kunt overwegen deze updates toe te passen om de prestaties van het exemplaar van SQL Server te verbeteren. De mate van verbetering die u ziet, is afhankelijk van verschillende factoren, waaronder workloadpatroon, conflictpunten, processorindeling (aantal processorgroepen, sockets, NUMA-knooppunten, kernen in een NUMA-knooppunt) en de hoeveelheid geheugen die aanwezig is in het systeem. SQL Server ondersteuningsteam heeft deze updates en configuratiewijzigingen gebruikt om redelijke prestatieverbeteringen te behalen voor workloads van klanten die gebruikmaken van hardwaresystemen met verschillende NUMA-knooppunten en veel processors. Het ondersteuningsteam blijft dit artikel in de toekomst bijwerken met andere updates.

High-end systemen Een high-end systeem heeft doorgaans meerdere sockets, acht kernen of meer per socket, en een halve terabyte of meer geheugen.

Opmerking

In SQL Server 2016 en latere versies zijn veel van de traceringsvlagken die in dit artikel worden genoemd het standaardgedrag en hoeft u deze niet in te schakelen in deze versies.

De aanbevelingen zijn als volgt gegroepeerd in drie tabellen:

  • Tabel 1 bevat de meest aanbevolen updates en traceringsvlagmen voor schaalbaarheid op geavanceerde systemen.
  • Tabel 2 bevat aanbevelingen en richtlijnen voor het afstemmen van de prestaties.
  • Tabel 3 bevat aanvullende schaalbaarheidscorrecties die samen met een cumulatieve update zijn opgenomen.

Tabel 1. Belangrijke updates en traceringsvlagmen voor geavanceerde systemen

Bekijk de volgende tabel en schakel de traceringsvlagken in de kolom Traceringsvlag in nadat u ervoor hebt gezorgd dat uw exemplaar van SQL Server voldoet aan de vereisten in de kolom Toepasselijke versie en buildbereiken.

Opmerking

  • Toepasselijke versie en build geeft de specifieke update aan waarin de wijzigings- of traceringsvlag is geïntroduceerd. Als er geen CU is opgegeven, worden alle CU's in de SP opgenomen.

  • Niet toepasselijke versie en build geeft de specifieke update aan waarin de wijzigings- of traceringsvlag het standaardgedrag is geworden. Daarom is het voldoende om alleen die update toe te passen om de voordelen te krijgen.

Belangrijk

Wanneer u oplossingen met traceringsvlagmen inschakelt in AlwaysOn-omgevingen, moet u de fix- en traceringsvlagmen inschakelen voor alle replica's die deel uitmaken van de beschikbaarheidsgroep.

Scenario en symptoom om rekening mee te houden Traceringsvlag Toepasselijke versie- en buildbereiken Niet van toepassing versie en buildbereiken Knowledge Base-artikel/blogkoppeling met meer informatie
  • U ondervindt hoge WACHTTIJDen voor CMEMTHREAD.
  • SQL Server wordt geïnstalleerd op systemen met 8 of meer kernen per socket.
T8048
  • SQL Server 2012 RTM naar huidige Service Pack (SP)/CU
  • SQL Server 2014 RTM naar SP1
  • SQL Server 2014 SP2 naar huidige SP/CU
  • SQL Server 2016 RTM naar huidige SP/CU
  • SQL Server 2017 RTM naar huidige SP/CU
  • U ondervindt hoge WACHTTIJDen voor CMEMTHREAD.
  • SQL Server wordt geïnstalleerd op systemen met 8 of meer kernen per socket.
T8079 SQL Server 2014 SP2 naar huidige SP/CU
  • SQL Server 2016 RTM naar huidige SP/CU
  • SQL Server 2017 RTM naar huidige SP/CU
  • U gebruikt functies die afhankelijk zijn van de cache van de logboekgroep. (bijvoorbeeld AlwaysOn)
  • SQL Server wordt geïnstalleerd op systemen met meerdere sockets.
T9024 Cumulatieve updatepakket 3 voor SQL Server 2012 Service Pack 1 naar SP2 SQL Server 2014 RTM
  • SQL Server 2012 SP3 naar huidige SP/CUSQL
  • Server 2014 SP1 naar huidige SP/CU
  • SQL Server 2016 RTM naar huidige SP/CU
  • SQL Server 2017 RTM naar huidige SP/CU
FIX: Hoge waarde van de teller 'schrijfwachttijden voor logboeken' op een exemplaar van SQL Server 2012 of SQL Server 2014
Uw exemplaar van SQL Server verwerkt duizenden opnieuw instellen van de verbinding vanwege groepsgewijze verbindingen. T1236 Cumulatief updatepakket 9 voor SQL Server 2012 Service Pack 1 naar SP2 Cumulatieve update 1 voor SQL Server 2014
  • SQL Server 2012 SP3 naar huidige SP/CUSQL
  • Server 2014 SP1 naar huidige SP/CUSQL
  • Server 2016 RTM naar huidige SP/CU
  • SQL Server 2017 RTM naar huidige SP/CU
  • Uw toepassingsworkload omvat frequent tempdb-gebruik (het maken en verwijderen van tijdelijke tabellen of tabelvariabelen).
  • U ziet dat gebruikersaanvragen wachten op tempdb-paginaresources vanwege toewijzingsconflicten.
T1118
  • SQL Server 2012 RTM naar huidige SP/CU
  • SQL Server 2014 RTM naar huidige SP/CU
  • SQL Server 2016 RTM naar huidige SP/CU
  • SQL Server 2017 RTM naar huidige SP/CU
Gelijktijdigheidsverbeteringen voor de tempdb-database

OPMERKING Schakel de traceringsvlag in en voeg meerdere gegevensbestanden toe voor de tempdb-database.
  • U hebt meerdere tempdb-gegevensbestanden.
  • De gegevensbestanden worden in eerste instantie ingesteld op dezelfde grootte.
  • Vanwege zware activiteit, tempdb-bestanden groei en niet alle bestanden groeien op hetzelfde moment en veroorzaken toewijzingsconflicten.
T1117
  • SQL Server 2012 RTM naar huidige SP/CU
  • SQL Server 2014 RTM naar huidige SP/CU
  • SQL Server 2016 RTM naar huidige SP/CU
  • SQL Server 2017 RTM naar huidige SP/CU
Aanbevelingen voor het verminderen van toewijzingsconflicten in SQL Server tempdb-database
Zware SOS_CACHESTORE spinlockconflicten of uw plannen worden regelmatig verwijderd bij ad-hocqueryworkloads. T174 Geen
  • Vermeldingen in de plancache worden verwijderd vanwege groei in andere caches of geheugenmedewerkers
  • Hoog CPU-verbruik vanwege frequente hercompilatie van query's
T8032
  • SQL Server 2012 RTM naar huidige SP/CU
  • SQL Server 2014 RTM naar huidige SP/CU
Geen
Bestaande statistieken worden niet vaak bijgewerkt vanwege het grote aantal rijen in de tabel. T2371
  • SQL Server 2012 RTM naar huidige SP/CU
  • SQL Server 2014 RTM naar huidige SP/CU
Geen
  • Het voltooien van statistiekentaken duurt lang.
  • Kan meerdere taken voor het bijwerken van statistieken niet parallel uitvoeren.
T7471 SQL Server 2014 SP1 CU6 naar huidige SP/CU Geen Prestaties van updatestatistieken verbeteren met SQL 2014 & SQL 2016
De opdracht CHECKDB duurt lang voor grote databases.
  • T2562
  • T2549
    • SQL Server 2012 RTM naar huidige SP/CU
    • SQL Server 2014 RTM naar huidige SP/CU
    Geen
    De opdracht CHECKDB duurt lang voor grote databases. T2566
    • SQL Server 2012 RTM naar huidige SP/CU
    • SQL Server 2014 RTM naar huidige SP/CU
    Geen
    Het uitvoeren van gelijktijdige datawarehouse-query's die lang duren, resulteert in RESOURCE_SEMAPHORE_QUERY_COMPILE wachttijden. T6498 Cumulatief updatepakket 6 voor SQL Server 2014 naar SP1
    • SQL Server 2014 SP2 naar huidige SP/CUSQL
    • Server 2016 RTM naar huidige SP/CU
    • SQL Server 2017 RTM naar huidige SP/CU
    U probeert specifieke problemen met queryprestaties op te lossen Optimalisatiecorrecties zijn standaard uitgeschakeld. T4199
    • SQL Server 2012 RTM naar SP4
    • SQL Server 2014 RTM naar nieuwste versie
    Geen
    U ondervindt trage prestaties bij querybewerkingen met ruimtelijke gegevenstypen.
    • T6532
    • T6533
    • T6534
    • SQL Server 2012 SP3 naar huidige SP/CU
    • SQL Server 2014 SP2 naar huidige SP/CU
      • SQL Server 2016 RTM naar huidige SP/CU
      • SQL Server 2017 RTM naar huidige SP/CU
        • Query's worden weergegeven SOS_MEMORY_TOPLEVELBLOCKALLOCATOR en CMEMTHREAD-wachttijden.
        • Er is weinig beschikbare virtuele adresruimte voor het SQL Server proces.
        T8075
        • SQL Server 2012 SP2 CU8 naar huidige SP/CU
        • SQL Server 2014 RTM CU10 naar huidige SP/CU
        • SQL Server 2016 RTM naar huidige SP/CU
        • SQL Server 2017 RTM naar huidige SP/CU
        OPLOSSING: Fout over onvoldoende geheugen wanneer de virtuele adresruimte van het SQL Server-proces weinig SQL Server
        • SQL Server wordt geïnstalleerd op een computer met grote hoeveelheden geheugen.
        • Het maken van nieuwe databases duurt lang.
        T3449
        • SQL Server 2012 SP3 CU3 naar huidige SP/CU
        • SQL Server 2014 RTM CU14 naar huidige RTM CU
        • SQL Server 2014 SP1 CU7 naar huidige SP/CU
        • SQL Server 2016 RTM naar huidige SP/CU
        • SQL Server 2017 RTM naar huidige SP/CU
        FIX: SQL Server database maken op een systeem met een groot geheugenvolume duurt langer dan verwacht

        Tabel 2. Algemene overwegingen en best practices voor het verbeteren van de prestaties van uw exemplaar van SQL Server

        Bekijk de inhoud in het Knowledge Base-artikel/de kolom Boeken onlineresource en overweeg de richtlijnen in de kolom Aanbevolen acties te implementeren.

        Knowledge Base-artikel/Boeken Online-resource Aanbevolen acties
        De maximale mate van parallelle configuratie van de server configureren Gebruik de sp_configure opgeslagen procedure om configuratiewijzigingen aan te brengen in De maximale mate van parallelle uitvoering configureren van serverconfiguratieoptie voor uw exemplaar van SQL Server volgens het Knowledge Base-artikel.
        Rekencapaciteitslimieten per editie van SQL Server Enterprise Edition met licentieverlening voor Server + Client Access License (CAL) is beperkt tot 20 kernen per SQL Server exemplaar. Er zijn geen limieten onder het op Core gebaseerde serverlicentiemodel. Overweeg uw editie van SQL Server te upgraden naar de juiste SKU om gebruik te maken van alle hardwareresources.
        Trage prestaties op Windows Server bij gebruik van het energiebeheerschema 'Gebalanceerd' Lees het artikel en neem contact op met uw Windows-beheerder om een van de oplossingen te implementeren die worden vermeld in de sectie 'Oplossing' van het artikel.
        Wijs NUMA-knooppunten handmatig toe aan K-groepen.
        Optimaliseren voor ad-hocworkloadsGEFORCEERDE PARAMETERIZATION Vermeldingen in de plancache worden verwijderd vanwege groei in andere caches of geheugenmedewerkers. U kunt ook te maken krijgen met het verwijderen van de plancache wanneer het maximum aantal vermeldingen voor de cache is bereikt. Naast traceringsvlag 8032 die hierboven is besproken, kunt u de optie optimalisatie voor ad-hocworkloads server en ook de optie GEFORCEERDE PARAMETERIZATION-database overwegen.
        Paging van buffergroepgeheugen verminderen in SQL ServerMijmory-configuratie en overwegingen voor grootte in SQL Server 2012 en latere versies Wijs het gebruikersrecht Pagina's vergrendelen in geheugenoptie (Windows) toe aan het opstartaccount van de SQL-service. Zie De functie Vergrendelde pagina's inschakelen in SQL Server 2012. Stel het maximale servergeheugen in op ongeveer 90 procent van het totale fysieke geheugen. Zorg ervoor dat bij de configuratieopties voor servergeheugenconfiguratie alleen geheugen wordt gebruikt van de knooppunten die zijn geconfigureerd voor het gebruik van instellingen voor affiniteitsmaskers.
        SQL Server en grote pagina's uitgelegd...Afstemmingsopties voor SQL Server bij uitvoering in workloads met hoge prestaties Overweeg om TF 834 in te schakelen als u een server met een grote hoeveelheid geheugen hebt, met name met een werkbelasting voor analytische of datawarehousing. Houd er rekening mee dat TF 834 niet wordt aanbevolen als u columnstore-indexen gebruikt.
        Beschrijving van de opties 'aantal cache-buckets voor toegangscontrole' en 'quotum voor toegangscontrolecache' die beschikbaar zijn in de sp_configure opgeslagen procedure Gebruik configuratieopties voor toegangscontrolecacheserver om deze waarden te configureren volgens de aanbevelingen in het Knowledge Base-artikel. Aanbevolen waarden voor geavanceerde systemen zijn als volgt:
        "Aantal cache-buckets voor toegangscontrole": 256
        "toegangscontrolecachequotum": 1024

        Queryhints voor alter workloadgroepgeheugentoekenningen Als u veel query's hebt die veel geheugentoekenningen opleveren, verlaagt request_max_memory_grant_percent u voor de standaardworkloadgroep in de resource governor-configuratie van de standaardwaarde van 25 procent naar een lagere waarde. Er zijn nieuwe opties voor het verlenen van querygeheugen beschikbaar (min_grant_percent en max_grant_percent) in SQL Server
        Direct initialiseren van bestanden Neem contact op met uw Windows-beheerder om het SQL Server-serviceaccount het gebruikersrecht 'Volumeonderhoudstaken uitvoeren' te verlenen op basis van de informatie in het onderwerp Boeken online.
        Overwegingen voor de instellingen 'autogrow' en 'autoshrink' in SQL Server Controleer de huidige instellingen van uw database en zorg ervoor dat deze zijn geconfigureerd volgens de aanbevelingen in het Knowledge Base-artikel.
        Databasecontrolepunten (SQL Server) Overweeg om indirecte controlepunten in te schakelen voor gebruikersdatabases om I/O-gedrag te optimaliseren in SQL Server 2012 en 2014.
        OPLOSSING: Trage synchronisatie wanneer schijven verschillende sectorgrootten hebben voor primaire en secundaire replicalogboekbestanden in SQL Server AG- en logboekregistratieomgevingen Als u een beschikbaarheidsgroep hebt waarin het transactielogboek op de primaire replica zich bevindt op een schijf met een sectorgrootte van 512 bytes en het transactielogboek van de secundaire replica zich op een station met een sectorgrootte van 4K bevindt, heeft u mogelijk een probleem waarbij de synchronisatie traag is. In deze gevallen moet het inschakelen van TF 1800 het probleem oplossen. Zie Traceringsvlag 1800 voor meer informatie.
        Als uw SQL Server nog niet cpu-gebonden is en een overhead van 1,5% tot 2% verwaarloosbaar is voor uw workloads, raden we u aan TF 7412 in te schakelen als opstarttraceringsvlag. Deze vlag maakt lichtgewicht profilering mogelijk in SQL Server 2014 SP2 of hoger, waardoor u de mogelijkheid hebt om live query's op te lossen in productieomgevingen.

        Tabel 3. Prestatiecorrecties die zijn opgenomen in een cumulatieve update

        Bekijk de beschrijving in de kolom Symptomen en pas de vereiste updates toe in de kolom Vereiste update in toepasselijke omgevingen. U kunt het Knowledge Base-artikel raadplegen voor meer informatie over de respectieve problemen. Voor deze aanbevelingen hoeft u geen extra traceringsvlagken in te schakelen als opstartparameters. Alleen het toepassen van de meest recente cumulatieve update of servicepack die deze correcties bevat, is voldoende om het voordeel te krijgen.

        Opmerking

        De CU-naam in de kolom Vereiste update bevat de eerste cumulatieve update van SQL Server waarmee dit probleem wordt opgelost. Een cumulatieve update bevat alle hotfixes en alle updates die zijn opgenomen in de vorige SQL Server updaterelease. Daarom raden we u aan de meest recente cumulatieve update te installeren om de problemen op te lossen.

        Symptomen Vereiste update Knowledge Base-artikel
        Gretige schrijfbewerkingen tijdens het selecteren voor tijdelijke tabellen veroorzaakt prestatieproblemen. SQL Server 2012 SP2 CU1
        SQL Server 2012 SP1 CU10
        OPLOSSING: Slechte prestaties op I/O wanneer u een tijdelijke tabelbewerking selecteert in SQL Server 2012
        U ziet PWAIT_MD_RELATION_CACHE of MD_LAZYCACHE_RWLOCK wacht nadat een ALTER INDEX ... ONLINE querybewerking is afgebroken. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU9
        OPLOSSING: De prestaties nemen af na een ALTER INDEX... ONLINE-bewerking wordt afgebroken in SQL Server 2012 of SQL Server 2014
        Query's presteren plotseling slecht op de Standard-editie van het product. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        FIX: Threads worden niet gelijkmatig gepland in SQL Server 2012 of SQL Server 2014 Standard Edition
        Trage prestaties vanwege een plotselinge daling van de levensverwachting van pagina's. SQL Server 2012 SP1 CU4 OPLOSSING: Er kunnen prestatieproblemen optreden in SQL Server 2012
        Hoog CPU-gebruik door resourcemonitor op systemen met NUMA-configuratie, groot geheugen en 'max servergeheugen' ingesteld op een lage waarde. SQL Server 2012 SP1 CU3 OPLOSSING: CPU-piek wanneer er geen belasting is op een server nadat u SQL Server 2012 op de server hebt geïnstalleerd
        Niet-opleverende scheduler tijdens toewijzing van geheugen voor sorteeruitvoeringen gekoppeld aan grote geheugentoelagen op systemen waarop een grote hoeveelheid geheugen is geïnstalleerd. SQL Server 2012 SP1 CU2 FIX: Fout 17883 wanneer u een query uitvoert op een server met veel CPU's en een grote hoeveelheid geheugen in SQL Server 2012 of in SQL Server 2008 R2
        Niet-opleverende scheduler wanneer de sorteeroperator veel buckets in de buffergroep doorkruist op systemen met een groot geheugen. SQL Server 2012 SP1 CU1 OPLOSSING: foutbericht 'Proces lijkt niet op te leveren in Scheduler' wanneer u een query uitvoert in SQL Server 2012
        Hoog CPU-gebruik wanneer u gelijktijdige query's uitvoert die lang duren voordat deze zijn gecompileerd op systemen met meerdere NUMA-knooppunten en veel kernen. SQL Server 2012 SP2 CU1
        SQL Server 2014 RTM CU2
        OPLOSSING: Intensieve werkbelasting voor querycompilatie wordt niet geschaald met een toenemend aantal kernen op NUMA-hardware en resulteert in CPU-verzadiging in SQL Server
        Het duurt lang voordat geheugentoewijzingen voor sorteeroperators zijn voltooid op NUMA-systemen met een groot geheugen vanwege toewijzingen van externe knooppunten. SQL Server 2012 SP1 CU3 OPLOSSING: prestatieproblemen SQL Server in NUMA-omgevingen
        Fouten met onvoldoende geheugen wanneer SQL Server is geïnstalleerd op een NUMA-computer met een grote hoeveelheid RAM en SQL Server veel refererende pagina's heeft. SQL Server 2012 RTM CU1 FIX: Fout over onvoldoende geheugen wanneer u een exemplaar van SQL Server 2012 uitvoert op een computer die GEBRUIKMAAKT van NUMA
        Spinlock-conflicten op SOS_CACHESTORE en SOS_SELIST_SIZED_SLOCK wanneer u een index bouwt op het type ruimtelijke gegevens in een grote tabel. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        OPLOSSING: Trage prestaties in SQL Server 2012 of SQL Server 2014 wanneer u een index bouwt op een type ruimtelijke gegevens van een grote tabel
        Hoog CMEMTHREAD-wachttype wanneer u een index bouwt op een type ruimtelijke gegevens in grote tabellen. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        FIX: Trage prestaties in SQL Server wanneer u een index bouwt op een type ruimtelijke gegevens van een grote tabel in een exemplaar van SQL Server 2012 of SQL Server 2014
        Prestatieproblemen vanwege SOS_PHYS_PAGE_CACHE en CMEMTHREAD-wachttijden tijdens geheugentoewijzing op computers met een groot geheugen. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU9
        OPLOSSING: Prestatieproblemen treden op in NUMA-omgevingen tijdens het verwerken van externe pagina's in SQL Server 2012 of SQL Server 2014
        De opdracht CHECKDB duurt lang voor grote databases. Cumulatief updatepakket 6 voor SQL Server 2014 OPLOSSING: DBCC CHECKDB/CHECKTABLE-opdracht kan langer duren in SQL Server 2012 of SQL Server 2014

        Belangrijke notities

        Verwijzingen

        Van toepassing op

        • 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