Bewerkingen die een buffergroepscan activeren, kunnen langzaam worden uitgevoerd op computers met een groot geheugen
Artikel
In dit artikel wordt beschreven hoe het scannen van de SQL Server-buffergroep lang kan duren op computers met een groot geheugen.
Van toepassing op: SQL Server Oorspronkelijk KB-nummer: 4566579
Symptomen
Bepaalde bewerkingen in Microsoft SQL Server activeren een scan van de buffergroep (de cache waarin databasepagina's in het geheugen worden opgeslagen). Op systemen met een grote hoeveelheid RAM (1 TB geheugen of hoger) kan het scannen van de buffergroep lang duren. Dit vertraagt de bewerking die de scan heeft geactiveerd.
Bewerkingen die een buffergroepscan veroorzaken
Hier volgen enkele bewerkingen die een buffergroepscan kunnen activeren:
Database opstarten
Database afsluiten of opnieuw opstarten
AG-failover
Database verwijderen (verwijderen)
Bestand verwijderen uit een database
Volledige of differentiële databaseback-up
Databaseherstel
Herstel van transactielogboek
Online herstel
DBCC CHECKDB of DBCC CHECKTABLE bewerking
In het foutenlogboek ziet u dat een scan lang heeft geduurd
De buffergroepscan duurde 14 seconden: database-id 7, opdracht 'BACKUP DATABASE', bewerking 'FlushCache', gescande buffers 115, totale iteratiebuffers 204640239, wachttijd 0 ms. Zie 'https://go.microsoft.com/fwlink/?linkid=2132602' voor meer informatie.
Uitgebreide gebeurtenis om een lange scan te diagnosticeren
Bovendien is vanaf dezelfde builds SQL Server 2016 SP3, SQL Server 2017 CU23 en SQL Server 2019 CU9 de buffer_pool_scan_complete Uitgebreide gebeurtenis geïntroduceerd om u te helpen bij het identificeren van scans van lange bufferpools.
Als een scan langer dan 1 seconde duurt, wordt de XEvent als volgt vastgelegd wanneer de gebeurtenis is ingeschakeld.
naam
database_id
elapsed_time_ms
opdracht
schakelapparatuur optimaliseren
scanned_buffers
total_iterated_buffers
buffer_pool_scan_complete
7
1308
BACK-UPDATABASE
FlushCache
243
19932814
Notitie
De drempelwaarde is in XEvent kleiner, zodat u gegevens kunt vastleggen op een nauwkeurigere granulariteit.
Tijdelijke oplossing
Vóór SQL Server 2022 was er geen manier om dit probleem op te lossen. Het wordt niet aanbevolen om een actie uit te voeren om de buffergroep te wissen als het verwijderen van schone buffers (DBCC DROPCLEANBUFFERS) uit de buffergroep kan leiden tot een aanzienlijke prestatievermindering. Als u databasepagina's uit het geheugen verwijdert, worden de gegevens opnieuw gelezen uit de databasebestanden op schijf. Dit proces voor het openen van gegevens via schijf-I/O zorgt ervoor dat query's traag zijn.
In SQL Server 2022 wordt dit probleem verholpen omdat scans van bufferpools worden geparallelliseerd door gebruik te maken van meerdere kernen. Er is één taak per 8 miljoen buffers (64 GB) waar nog steeds een seriële scan wordt gebruikt als er minder dan 8 miljoen buffers zijn. Bekijk parallelle scan bufferpool voor meer informatie.
In deze module wordt de migratie van databases van meer dan 20 TB verkend, beschouwd als zeer grote databases en de vereiste technieken en procedures voor het bereiken van een migratie van on-premises naar Azure binnen een acceptabele downtime en met geminimaliseerde risico's. Bereid u voor op het examen AZ-120 Planning en beheer van Microsoft Azure voor SAP-workloads.
Meer informatie over de uitbreiding van buffergroepen en de voordelen ervan, waaronder verbeterde I/O-doorvoer. Bekijk de aanbevolen procedures die u moet volgen bij het inschakelen van deze functie.
Meer informatie over het oplossen van de prestatie- en stabiliteitsproblemen die ontstaan door het gebruik van batchmodusverwerking in columnstore en rowstore met een groot geheugenmodel voor pagina's in SQL Server.