Delen via


Aanbevolen updates en configuratieopties voor SQL Server met werklasten 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
Oorspronkelijk 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 die het workloadpatroon, conflictenpunten, processorindeling (aantal processorgroepen, sockets, NUMA-knooppunten, kernen in een NUMA-knooppunt) en de hoeveelheid geheugen in het systeem omvatten. Het ondersteuningsteam van SQL Server heeft deze updates en configuratiewijzigingen gebruikt om redelijke prestatieverbeteringen te bereiken voor klantworkloads die hardwaresystemen gebruikten die verschillende NUMA-knooppunten en veel processors hadden. Het ondersteuningsteam blijft dit artikel bijwerken met andere updates in de toekomst.

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

Notitie

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

De aanbevelingen worden als volgt gegroepeerd in drie tabellen:

  • Tabel 1 bevat de meest aanbevolen updates en traceringsvlagmen voor schaalbaarheid op high-endsystemen.
  • Tabel 2 bevat aanbevelingen en richtlijnen voor aanvullende afstemming van prestaties.
  • Tabel 3 bevat aanvullende schaalbaarheidsoplossingen die samen met een cumulatieve update zijn opgenomen.

Tabel 1. Belangrijke updates en traceringsvlagmen voor geavanceerde systemen

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

Notitie

  • Toepasselijke versie en build geven 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 geven de specifieke update aan waarin de wijzigings- of traceringsvlag het standaardgedrag werd. Daarom is het gewoon toepassen van die update voldoende om de voordelen te krijgen.

Belangrijk

Wanneer u oplossingen inschakelt met traceringsvlagmen in AlwaysOn-omgevingen, moet u ervoor zorgen dat u de fix- en traceringsvlagmen moet 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 zijnde versie- en buildbereiken Knowledge Base-artikel/blogkoppeling met meer informatie
  • U ondervindt hoge CMEMTHREAD-wachttijden.
  • SQL Server is geïnstalleerd op systemen met 8 of meer kernen per socket.
T8048
  • SQL Server 2012 RTM naar huidig 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 CMEMTHREAD-wachttijden.
  • SQL Server is 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 logboekgroepcache. (bijvoorbeeld AlwaysOn)
  • SQL Server is geïnstalleerd op systemen met meerdere sockets.
T9024 Cumulatief 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 tellerwaarde voor schrijfwachttijden voor logboeken op een SQL Server 2012- of SQL Server 2014-exemplaar
Uw exemplaar van SQL Server verwerkt duizenden verbindingsherstelbewerkingen 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-paginabronnen vanwege conflicten over de toewijzing.
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 eerst ingesteld op dezelfde grootte.
  • Vanwege zware activiteit kunnen tempdb-bestanden groeien en niet alle bestanden tegelijkertijd groeien en leiden tot conflicten in de toewijzing.
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 de SQL Server-tempdb-database
Zware SOS_CACHESTORE spinlockconflicten of uw plannen worden regelmatig verwijderd op ad-hocqueryworkloads. T174 Geen
  • Vermeldingen in de plancache worden verwijderd vanwege groei in andere caches of geheugenmedewerkers
  • Hoog CPU-verbruik vanwege frequente recompiles 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 duurt lang voordat statistiekentaken zijn voltooid.
  • Kan niet meerdere taken voor het bijwerken van statistieken parallel uitvoeren.
T7471 SQL Server 2014 SP1 CU6 naar huidige SP/CU Geen Prestaties van updatestatistieken verbeteren met SQL 2014 en SQL 2016
CHECKDB-opdracht duurt lang voor grote databases.
  • T2562
  • T2549
    • SQL Server 2012 RTM naar huidige SP/CU
    • SQL Server 2014 RTM naar huidige SP/CU
    Geen
    CHECKDB-opdracht 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 lange compileertijd 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 kunt specifieke problemen met de prestaties van query's oplossen. Optimalisatieoplossingen zijn standaard uitgeschakeld. T4199
    • SQL Server 2012 RTM naar SP4
    • SQL Server 2014 RTM naar nieuwste versie
    Geen
    U ondervindt trage prestaties met 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 tegenkomen 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
        FIX: Fout met onvoldoende geheugen wanneer de virtuele adresruimte van het SQL Server-proces laag is in SQL Server
        • SQL Server is 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: het maken van een SQL Server-database op een systeem met een grote hoeveelheid geheugen duurt langer dan verwacht

        Tabel 2. Algemene overwegingen en aanbevolen procedures 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 parallellismeserverconfiguratie configureren Gebruik de sp_configure opgeslagen procedure om configuratiewijzigingen aan te brengen om de maximale mate van parallellismeserverconfiguratie voor uw exemplaar van SQL Server te configureren volgens het Knowledge Base-artikel.
        Limieten voor rekencapaciteit per editie van SQL Server Enterprise Edition met Licenties voor Server + Client Access License (CAL) is beperkt tot 20 kernen per SQL Server-exemplaar. Er gelden geen limieten onder het Core-model voor serverlicenties. Overweeg uw editie van SQL Server te upgraden naar de juiste SKU om gebruik te maken van alle hardwarebronnen.
        Trage prestaties op Windows Server bij gebruik van het energieplan 'Evenwichtig' Lees het artikel en werk samen 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-hocworkloads GEFORCEERDE PARAMETERISATIE Vermeldingen in de plancache worden verwijderd vanwege groei in andere caches of geheugenbediende. U kunt ook verwijdering van de plancache tegenkomen wanneer de cache het maximum aantal vermeldingen bereikt. Naast traceringsvlag 8032 die hierboven is besproken, kunt u de optie optimaliseren voor ad-hocworkloadservers en ook de optie GEFORCEERDE PARAMETERISATIEdatabase overwegen.
        Paging van buffergroepgeheugen verminderen in sql Server-geheugenconfiguratie en overwegingen met betrekking tot de grootte in SQL Server 2012 en latere versies Wijs de gebruiker De pagina's in het geheugen inschakelen (Windows) rechtstreeks 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 de opties voor servergeheugenconfiguratie accounts voor geheugen instellen vanaf alleen de knooppunten die zijn geconfigureerd voor het gebruik van instellingen voor affiniteitsmasker.
        Uitleg over SQL Server en grote pagina's... Afstemmingsopties voor SQL Server bij uitvoering in workloads met hoge prestaties Overweeg 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 cachebucket voor toegangscontrole' en 'quotum voor toegangscontrolecache' die beschikbaar zijn in de sp_configure opgeslagen procedure Gebruik de configuratieopties voor de cacheserver om deze waarden te configureren volgens de aanbevelingen in het Knowledge Base-artikel. Aanbevolen waarden voor hoogwaardige systemen zijn als volgt:
        "Aantal cache-buckets voor toegang controleren": 256
        "toegangscontrole cachequotum": 1024

        Hints voor het verlenen van query's voor ALTER WORKLOAD GROUP Memory Als u veel query's hebt die grote geheugentoekenningen uitputten, vermindert request_max_memory_grant_percent u de standaardworkloadgroep in de resource governor-configuratie van de standaardwaarde van 25 procent naar een lagere waarde. Nieuwe opties voor het verlenen van querygeheugen zijn beschikbaar (min_grant_percent en max_grant_percent) in SQL Server
        Initialisatie van direct bestand Werk samen met uw Windows-beheerder om het SQL Server-serviceaccount het gebruikersrecht 'Volumeonderhoudstaken uitvoeren' te verlenen op basis van de informatie in het onderwerp Books 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 indirecte controlepunten in te schakelen voor gebruikersdatabases om het I/O-gedrag in SQL Server 2012 en 2014 te optimaliseren.
        FIX: Trage synchronisatie wanneer schijven verschillende sectorgrootten hebben voor primaire en secundaire replicalogboekbestanden in SQL Server AG en Logshipping-omgevingen Als u een beschikbaarheidsgroep hebt waarin het transactielogboek op de primaire replica zich op een schijf bevindt met een sectorgrootte van 512 bytes en het transactielogboek van de secundaire replica zich op een station bevindt met een grootte van 4K-sector, kan er een probleem zijn waarbij synchronisatie traag is. In deze gevallen moet het inschakelen van TF 1800 het probleem oplossen. Zie Trace Flag 1800 voor meer informatie.
        Als uw SQL Server nog niet afhankelijk is van de CPU en een overhead van 1,5% tot 2% te verwaarlozen is voor uw workloads, raden we u aan TF 7412 in te schakelen als opstarttraceringsvlag. Met deze vlag kunt u lichtgewicht profileren in SQL Server 2014 SP2 of hoger, zodat u live queryproblemen kunt oplossen 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 traceringsvlagmen in te schakelen als opstartparameters. Het toepassen van de meest recente cumulatieve update of het meest recente servicepack dat deze oplossingen bevat, is voldoende om het voordeel te krijgen.

        Notitie

        De CU-naam in de kolom Vereiste update biedt 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 selectie voor tijdelijke tabellen veroorzaken prestatieproblemen. SQL Server 2012 SP2 CU1
        SQL Server 2012 SP1 CU10
        FIX: Slechte prestaties op I/O wanneer u een selectie uitvoert in een tijdelijke tabelbewerking 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 standaardeditie van het product. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        OPLOSSING: 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: Mogelijk ondervindt u prestatieproblemen in SQL Server 2012
        Hoog CPU-gebruik door resourcemonitor op systemen met NUMA-configuratie, groot geheugen en maximaal servergeheugen ingesteld op een lage waarde. SQL Server 2012 SP1 CU3 FIX: CPU-piek wanneer er geen belasting op een server is nadat u SQL Server 2012 op de server hebt geïnstalleerd
        Niet-opleverende scheduler terwijl toewijzingsgeheugen voor sorteeruitvoeringen gekoppelde grote geheugentoekennden op systemen waarop 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-rendementsplanner wanneer de sorteeroperator veel buckets doorkruist in de buffergroep op systemen met een groot geheugen. SQL Server 2012 SP1 CU1 FIX: Foutbericht 'Proces lijkt niet te opleveren in Scheduler' wanneer u een query uitvoert in SQL Server 2012
        Hoog CPU-gebruik wanneer u gelijktijdige query's uitvoert die lang duren om te compileren op systemen met meerdere NUMA-knooppunten en veel kernen. SQL Server 2012 SP2 CU1
        SQL Server 2014 RTM CU2
        FIX: Intensieve workload 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 groot geheugen vanwege toewijzingen van externe knooppunten. SQL Server 2012 SP1 CU3 OPLOSSING: PRESTATIEproblemen met SQL Server in NUMA-omgevingen
        Onvoldoende geheugenfouten wanneer SQL Server is geïnstalleerd op een NUMA-machine met een grote hoeveelheid RAM en SQL Server heeft veel refererende pagina's. SQL Server 2012 RTM CU1 FIX: Fout met onvoldoende geheugen wanneer u een exemplaar van SQL Server 2012 uitvoert op een computer die GEBRUIKMAAKT van NUMA
        Spinlock-conflicten aan SOS_CACHESTORE en SOS_SELIST_SIZED_SLOCK wanneer u een index bouwt voor het ruimtelijke gegevenstype in een grote tabel. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        FIX: Trage prestaties in SQL Server 2012 of SQL Server 2014 wanneer u een index bouwt op een ruimtelijk gegevenstype van een grote tabel
        Hoog CMEMTHREAD-wachttype wanneer u een index bouwt voor een ruimtelijk gegevenstype in grote tabellen. SQL Server 2014 RTM CU1
        SQL Server 2012 SP1 CU7
        OPLOSSING: Trage prestaties in SQL Server wanneer u een index bouwt op een ruimtelijk gegevenstype van een grote tabel in een SQL Server 2012- of SQL Server 2014-exemplaar
        Prestatieproblemen vanwege SOS_PHYS_PAGE_CACHE en CMEMTHREAD wachten tijdens de 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 verwerking van externe pagina's in SQL Server 2012 of SQL Server 2014
        CHECKDB-opdracht duurt lang voor grote databases. Cumulatief updatepakket 6 voor SQL Server 2014 FIX: DE OPDRACHT DBCC CHECKDB/CHECKTABLE kan langer duren in SQL Server 2012 of SQL Server 2014

        Belangrijke opmerkingen

        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