Creazione e gestione dell'archiviazione per gli oggetti con ottimizzazione per la memoria

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di Azure

Il motore di OLTP in memoria è integrato in SQL Server, in modo da consentire la presenza sia di tabelle ottimizzate per la memoria che di tabelle tradizionali basate su disco nello stesso database. Tuttavia, la struttura di archiviazione per le tabelle ottimizzate per la memoria è diversa rispetto alle tabelle basate su disco.

L'archiviazione per una tabella basata su disco presenta gli attributi chiave seguenti:

  • È stato eseguito il mapping a un filegroup e il filegroup contiene uno o più file.

  • Ogni file è suddiviso in extent di 8 pagine e ogni pagina è 8 KB di dimensioni.

  • Un extent può essere condiviso tra più tabelle, ma esiste un mapping 1 a 1 tra una pagina allocata e la tabella o l'indice. In altri termini, una pagina non può includere righe di due o più tabelle o indici.

  • I dati vengono spostati in memoria (pool di buffer) in base alle esigenze e le pagine appena create o modificate vengono scritte in modo asincrono sul disco generando operazioni IO principalmente casuali.

L'archiviazione per le tabelle ottimizzate per la memoria presenta gli attributi chiave seguenti:

  • Tutte le tabelle ottimizzate per la memoria sono mappate a un filegroup di dati ottimizzato per la memoria. Questo filegroup usa sintassi e semantica simili a Filestream.

  • Non sono presenti pagine e i dati vengono salvati in modo permanente come riga.

  • Tutte le modifiche apportate alle tabelle ottimizzate per la memoria vengono archiviate aggiungendole ai file attivi. La lettura e la scrittura nei file è sequenziale.

  • Un aggiornamento viene implementato come un'eliminazione seguita da un inserimento. Le righe eliminate non vengono rimosse immediatamente dalla risorsa di archiviazione. Le righe eliminate vengono rimosse da un processo in background, denominato MERGE, in base ai criteri descritti in Durabilità per tabelle con ottimizzazione per la memoria.

  • A differenza delle tabelle basate su disco, lo spazio di archiviazione per le tabelle ottimizzate per la memoria non è compresso. Quando si esegue la migrazione di una tabella basata su disco (ROW o PAGE) compressa a una tabella ottimizzata per la memoria, è necessario tenere conto della variazione di dimensioni.

  • Una tabella ottimizzata per la memoria può essere durevole o non durevole. È sufficiente configurare l'archiviazione per le tabelle ottimizzate per la memoria durevoli.

In questa sezione vengono descritte le coppie di file di checkpoint e altri aspetti della modalità di archiviazione dei dati nelle tabelle ottimizzate per la memoria.

Contenuto della sezione:

Vedi anche

OLTP in memoria (ottimizzazione in memoria)