Delen via


Disk-gebaseerde Table Storage vergelijken met geheugen-geoptimaliseerde Table Storage

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Categorieën Tabel op basis van schijf Duurzame Geheugen-geoptimaliseerde Tabel
DDL Metagegevensgegevens worden opgeslagen in systeemtabellen in de primaire bestandsgroep van de database en zijn toegankelijk via catalogusweergaven. Metagegevensgegevens worden opgeslagen in systeemtabellen in de primaire bestandsgroep van de database en zijn toegankelijk via catalogusweergaven.
Structuur Rijen worden opgeslagen in pagina's van 8 kilobyte. Op een pagina worden alleen rijen uit dezelfde tabel opgeslagen. Rijen worden opgeslagen als afzonderlijke rijen. Er is geen paginastructuur. Twee opeenvolgende rijen in een gegevensbestand kunnen deel uitmaken van verschillende tabellen die zijn geoptimaliseerd voor geheugen.
Indexes Indexen worden opgeslagen in een paginastructuur die vergelijkbaar is met gegevensrijen. Alleen de indexdefinitie blijft behouden (geen indexrijen). Indexen worden in het geheugen onderhouden en opnieuw gegenereerd wanneer de tabel die is geoptimaliseerd voor geheugen in het geheugen wordt geladen als onderdeel van het opnieuw opstarten van een database. Omdat indexrijen niet behouden blijven, wordt er geen logboekregistratie uitgevoerd voor indexwijzigingen.
DML-bewerking De eerste stap is het vinden van de pagina en vervolgens laden in bufferpool.

Invoegen
SQL Server voegt de rij op de pagina in met inachtneming van de rijvolgorde bij een geclusterde index.

Delete
SQL Server zoekt de rij die moet worden verwijderd op de pagina en markeert deze verwijderd.

bijwerken
SQL Server vindt de rij op de pagina. De update wordt ter plaatse uitgevoerd voor niet-sleutelkolommen. Het bijwerken van een sleutelkolom gebeurt door eerst te verwijderen en vervolgens in te voegen.

Nadat de DML-bewerking is voltooid, worden de betrokken pagina's als onderdeel van het buffervoorraadbeleid, controlepunt, of transactiecommit voor minimaal vastgelegde bewerkingen naar de schijf geschreven. Beide lees-/schrijfbewerkingen op pagina's leiden tot onnodige I/O.
Voor tabellen die zijn geoptimaliseerd voor geheugen, omdat de gegevens zich in het geheugen bevinden, worden de DML-bewerkingen rechtstreeks in het geheugen uitgevoerd. Er is een achtergrondthread die de logboekrecords leest voor tabellen die zijn geoptimaliseerd voor geheugen en deze in gegevens- en deltabestanden persistent maakt. Een update genereert een nieuwe rijversie. Maar een update wordt geregistreerd als een verwijderbewerking, gevolgd door een invoegbewerking.
Gegevensfragmentatie Gegevensmanipulatie fragmenteert data, wat leidt tot gedeeltelijk gevulde pagina's en logisch opeenvolgende pagina's die niet aaneengesloten zijn op schijf. Dit verslechtert de prestaties van gegevenstoegang en vereist dat u gegevens defragmenteert. Gegevens die zijn geoptimaliseerd voor geheugen, worden niet opgeslagen in pagina's, dus er is geen gegevensfragmentatie. Wanneer rijen echter worden bijgewerkt en verwijderd, moeten de gegevens- en deltabestanden worden gecomprimeerd. Dit wordt gedaan door een achtergrond-MERGE-thread op basis van een samenvoegbeleid.

Zie ook

Opslag maken en beheren voor Memory-Optimized objecten