Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server in Windows
De buffergroepextensie integreert SSD-opslag met de Database Engine buffergroep om de databaseprestaties te verbeteren zonder dat er hoge kosten voor extra geheugen in rekening worden gebracht.
De buffergroepextensie is niet beschikbaar in elke SQL Server-editie. Zie Edities en ondersteunde functies van SQL Server 2025 voor meer informatie.
Voordelen van de buffergroepextensie
Omdat het relatief lang kan duren voordat schijf-I/O-bewerkingen zijn voltooid, vormen ze een knelpunt in de prestaties in veel werkbelastingen.
De gebruikelijke methode voor het verminderen van schijf-I/O is het toevoegen van meer geheugen voor gebruik als gegevenscache. Hoewel dit nuttig is, is het nadeel van deze benadering de hoge geheugenkosten.
Met de uitbreidingsfunctie voor de bufferpool wordt de cache van de bufferpool uitgebreid met niet-vluchtige opslag, zoals lokale SSD-stations. Met deze extensie kan de buffergroep geschikt zijn voor een grotere databasewerkset, waarbij een aanzienlijk deel van de tragere externe I/O wordt vervangen door de snellere lokale SSD I/O. Vanwege de lagere latentie en betere I/O-prestaties van SSD's kan de buffergroepextensie de prestaties verbeteren, met name met de tragere externe I/O-systemen.
In de volgende lijst worden de voordelen van de functie buffergroepuitbreiding beschreven.
- Verhoogde I/O-doorvoer
- Minder I/O-latentie
- Verhoogde transactiedoorvoer
- Verbeterde leesprestaties met een grotere hybride buffergroep
- Een cachearchitectuur die kan profiteren van huidige en toekomstige goedkope geheugenstations
Concepten van buffergroepuitbreidingen
De volgende voorwaarden zijn van toepassing op de functie buffergroepuitbreiding.
| Termijn | Beschrijving |
|---|---|
| Buffer | In de Database Engine is een buffer een pagina van 8 kB in het geheugen, dezelfde grootte als een gegevens- of indexpagina. De buffercache is dus onderverdeeld in pagina's van 8 kB. Een pagina blijft in de buffercache totdat het bufferbeheer het buffergebied nodig heeft om meer gegevens te lezen. Gegevens worden alleen teruggeschreven naar de schijf als deze worden gewijzigd. Deze in het geheugen gewijzigde pagina's worden aangeduid als 'vuile pagina's'. Een pagina is schoon wanneer deze gelijk is aan zijn database-afbeelding op schijf. Gegevens in de buffercache kunnen meerdere keren worden gewijzigd voordat ze terug naar de schijf worden geschreven. |
| buffergroep | Ook wel buffercachegenoemd. Alle databases gebruiken de buffergroep als een globale resource voor hun gegevenspagina's in de cache. Het opstartproces of sp_configure configureert het exemplaar van de Database Engine dynamisch opnieuw om de maximale en minimale grootte van de bufferpoolcache te bepalen. Deze grootte bepaalt het maximum aantal pagina's dat een exemplaar in de buffergroep kan opslaan. Externe geheugenbelasting kan de grootte van de buffergroep verminderen en het geheugen beperken dat de buffergroepextensie kan cachen. |
| Controlepunt | Een controlepunt maakt een bekend goed punt waaruit de database-engine kan beginnen met het toepassen van wijzigingen in het transactielogboek tijdens het herstel na een onverwachte afsluiting of crash. Een controlepunt schrijft de vuile pagina's en transactielogboekgegevens van het geheugen naar de schijf. Zie Database-controlepunten (SQL Server)voor meer informatie. |
Architectuur van bufferpooluitbreiding
Met behulp van de buffergroepextensie kunt u SSD-opslag gebruiken als extensie voor het geheugensubsysteem in plaats van een deel van het schijfsubsysteem. Met het buffergroepextensiebestand kan de buffergroepbeheerder zowel DRAM- als NAND-flashgeheugen gebruiken om een veel grotere buffergroep van pagina's op EENSD's te onderhouden.
Deze architectuur maakt een cachehiƫrarchie met meerdere niveaus met niveau 1 (L1) als de DRAM en niveau 2 (L2) als het buffergroepextensiebestand op de SSD. Alleen schone pagina's worden naar de L2-cache geschreven, waardoor de gegevensveiligheid behouden blijft. De bufferbeheerder verwerkt de verplaatsing van schone pagina's tussen de L1- en L2-caches.
In de volgende afbeelding ziet u een algemeen architectuuroverzicht van de buffergroep ten opzichte van andere Database Engine onderdelen.
Wanneer u de buffergroepextensie inschakelt, geeft u de grootte en het bestandspad op van het cachebestand van de buffergroep op de SSD. Dit bestand is een aaneengesloten hoeveelheid opslag op de SSD en is statisch geconfigureerd tijdens het opstarten van het Database Engine exemplaar. U kunt alleen de configuratieparameters voor bestanden wijzigen wanneer de functie voor de buffergroepextensie is uitgeschakeld. Wanneer u de buffergroepextensie uitschakelt, verwijdert het systeem alle gerelateerde configuratie-instellingen uit het register. Het systeem verwijdert het extensiebestand van de bufferpool wanneer de Database Engine wordt afgesloten.
Configuratie van buffergroepextensie
Gebruik ALTER SERVER CONFIGURATION om de bufferpoolextensie te configureren.
Het systeem beschouwt het fysieke geheugen dat beschikbaar is voor het Database Engine-exemplaar bij het opstarten om de minimale en maximale grootte van de buffergroepextensie af te dwingen.
Maximumgrootte
De maximale grootte van de buffergroepextensie is afhankelijk van de SQL Server editie en verschilt voor fysieke en virtuele machines.
Als u een grootte configureert die groter is dan het maximum, retourneert de Database Engine fout 864 en wordt de buffergroepextensie niet ingeschakeld.
SQL Server Enterprise-, Enterprise Developer- en Developer-edities ondersteunen maximaal 32 keer het fysieke geheugen.
SQL Server Standard- en Standard Developer-edities op fysieke machines ondersteunen maximaal 4 keer het fysieke geheugen.
Maximaal 512 GB in SQL Server 2022 (16.x) en eerdere versies.
Maximaal 1 TB in SQL Server 2025 (17.x) en nieuwere versies.
SQL Server Standard- en Standard Developer-edities op virtuele machines ondersteunen maximaal 16 keer het fysieke geheugen.
Zie Edities en ondersteunde functies van SQL Server 2025 voor meer informatie.
Minimale grootte
De extensiegrootte van de buffergroep moet groter zijn dan de kleinste van het fysieke geheugen en de maximale servergeheugenwaarden (MB). Als de geconfigureerde grootte kleiner is dan dit minimum, geeft de Database Engine fout 868. Als de geconfigureerde grootte kleiner is dan dit minimum bij het opstarten van het exemplaar, wordt fout 861 geregistreerd en is de buffergroepextensie niet ingeschakeld.
Gedrag van configuratiewijziging
U kunt max server memory (MB) verhogen naar een waarde die hoger is dan de grootte van de bufferpoolextensie wanneer de extensie is ingeschakeld. De Database Engine registreert een informatief bericht (fout 5866) en past de wijziging toe. Omdat de nieuwe waarde echter in strijd is met de minimale groottevereiste, wordt de extensie van de buffergroep uitgeschakeld wanneer de instantie de volgende keer opnieuw wordt opgestart.
Als u de buffergroepextensie inschakelt met een grootte die lager max server memory (MB)is, mislukt de bewerking met fout 868.
Aanbevolen procedures voor bufferpooluitbreidingen
Houd rekening met de volgende best practices:
- Nadat u de buffergroepextensie voor het eerst hebt ingeschakeld, start u het Database Engine exemplaar opnieuw op om de maximale prestatievoordelen te verkrijgen.
- Stel de buffergroepextensie in zodat de verhouding tussen de grootte van het fysieke geheugen en de grootte van de buffergroepextensie 1:16 of minder is. Een lagere verhouding in het bereik van 1:4 tot 1:8 kan optimaal zijn. Zie
max server memory (MB)voor meer informatie over het instellen van de optie . - Test de buffergroepextensie grondig voordat u deze implementeert in een productieomgeving. Als u eenmaal in productie bent, moet u geen configuratiewijzigingen aanbrengen in het bestand of de functie uitschakelen. Deze activiteiten kunnen een negatief effect hebben op de serverprestaties omdat de buffergroep aanzienlijk kleiner wordt wanneer de functie is uitgeschakeld. Als dit is uitgeschakeld, wordt het geheugen dat wordt gebruikt ter ondersteuning van de functie pas vrijgemaakt als het exemplaar van SQL Server opnieuw wordt opgestart. Als de functie echter opnieuw is ingeschakeld, wordt het geheugen opnieuw gebruikt zonder het exemplaar opnieuw op te starten.
Buffergroepextensie bewaken
U kunt de volgende dynamische beheerweergaven gebruiken om de configuratie van de buffergroepextensie weer te geven en informatie over de gegevenspagina's in de extensie te retourneren.
Prestatietellers zijn beschikbaar in het object SQL Server, Buffer Manager om de gegevenspagina's in het bufferpoolextensiebestand bij te houden. Zie SQL Server, bufferbeheerobject voor meer informatie.
De volgende uitgebreide gebeurtenissen zijn beschikbaar om de extensie van buffergroepen uitgebreid te bewaken.
| Event | Beschrijving |
|---|---|
buffer_pool_extension_pages_written |
Vindt plaats wanneer een pagina of groep pagina's wordt verwijderd uit de bufferpool en naar het bufferpool-uitbreidingsbestand wordt geschreven. |
buffer_pool_extension_pages_read |
Wordt geactiveerd wanneer een pagina wordt gelezen uit het bufferpoolextensiebestand naar de bufferpool. |
buffer_pool_extension_pages_evicted |
Wordt geactiveerd wanneer een pagina wordt verwijderd uit het buffergroepextensiebestand. |
buffer_pool_eviction_thresholds_recalculated |
Wordt geactiveerd wanneer de verwijderingsdrempels opnieuw worden berekend. |