Dela via


Skapa och hantera lagring för minnesoptimerade objekt

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Den In-Memory OLTP-motorn är integrerad i SQL Server, vilket gör att du kan ha både minnesoptimerade tabeller och (traditionella) diskbaserade tabeller i samma databas. Lagringsstrukturen för minnesoptimerade tabeller skiljer sig dock från diskbaserade tabeller.

Lagring för diskbaserad tabell har följande nyckelattribut:

  • Mappad till en filgrupp och filgruppen innehåller en eller flera filer.

  • Varje fil är uppdelad i åtta sidor och varje sida är 8 kilobyte (8 192 byte) i storlek.

  • En omfattning kan delas mellan flera tabeller, men det finns en en-till-en-mappning mellan en allokerad sida och tabellen eller indexet. En sida kan med andra ord inte ha rader från två eller flera tabeller eller index.

  • Data flyttas till minnet (buffertpoolen) efter behov och de ändrade eller nyligen skapade sidorna skrivs asynkront till disken som genererar mestadels slumpmässig I/O.

Lagring för minnesoptimerade tabeller har följande nyckelattribut:

  • Alla minnesoptimerade tabeller mappas till en minnesoptimerad datafilgrupp. Den här filgruppen använder syntax och semantik som liknar Filestream.

  • Det finns inga sidor och data sparas som en rad.

  • Alla ändringar i minnesoptimerade tabeller lagras genom att de läggs till i aktiva filer. Både läsning och skrivning till filer är sekventiellt.

  • En uppdatering implementeras som en borttagning följt av en infogning. De borttagna raderna tas inte bort omedelbart från lagringen. De borttagna raderna tas bort av en bakgrundsprocess som kallas MERGE, baserat på en policy enligt beskrivningen i Beständighet för minnesoptimerade tabeller.

  • Till skillnad från diskbaserade tabeller komprimeras inte lagring för minnesoptimerade tabeller. När du migrerar en komprimerad (ROW eller PAGE) diskbaserad tabell till en minnesoptimerad tabell måste du ta hänsyn till storleksändringen.

  • En minnesoptimerad tabell kan vara beständig eller vara icke-beständig. Du behöver bara konfigurera lagring för varaktiga minnesoptimerade tabeller.

I det här avsnittet beskrivs kontrollpunktsfilpar och andra aspekter av hur data i minnesoptimerade tabeller lagras.

Artiklar i det här avsnittet: