Condividi tramite


Creare e gestire l'archiviazione per oggetti ottimizzati per la memoria

Si applica a:SQL Server, Database SQL di Azure e Istanza 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 estensioni di otto pagine e ogni pagina è di 8 kilobyte (8.192 byte).

  • Un extent può essere condiviso tra più tabelle, ma esiste una mappatura uno-a-uno tra una pagina assegnata 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 a un criterio come descritto in Durabilità per le tabelle Memory-Optimized.

  • A differenza delle tabelle basate su disco, l'archiviazione per le tabelle ottimizzate per la memoria non viene compressa. Quando si esegue la migrazione di una tabella compressa (ROW o PAGE) basata su disco a una tabella ottimizzata per la memoria, è necessario tenere conto della modifica delle 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.

Articoli in questa sezione: