Creazione e gestione dell'archiviazione per gli oggetti con ottimizzazione per la memoriaCreating and Managing Storage for Memory-Optimized Objects

QUESTO ARGOMENTO SI APPLICA A: sìSQL Server (a partire dalla versione 2016)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Il motore di OLTP in memoriaIn-Memory OLTP è integrato in SQL ServerSQL Server, in modo da consentire la presenza sia di tabelle con ottimizzazione per la memoria che di tabelle tradizionali basate su disco nello stesso database.The OLTP in memoriaIn-Memory OLTP engine is integrated into SQL ServerSQL Server, which lets you have both memory-optimized tables and (traditional) disk-based tables in the same database. Tuttavia, la struttura di archiviazione per le tabelle con ottimizzazione per la memoria è diversa rispetto alle tabelle basate su disco.However, the storage structure for memory-optimized tables is different from disk-based tables.

L'archiviazione per una tabella basata su disco presenta gli attributi chiave seguenti:Storage for disk-based table has following key attributes:

  • È stato eseguito il mapping a un filegroup e il filegroup contiene uno o più file.Mapped to a filegroup and the filegroup contains one or more files.

  • Ogni file è suddiviso in extent di 8 pagine e ogni pagina è 8 KB di dimensioni.Each file is divided into extents of 8 pages and each page is of size 8K bytes.

  • 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.An extent can be shared across multiple tables, but a there is 1-to-1 mapping between an allocated page and the table or index. In altri termini, una pagina non può includere righe di due o più tabelle o indici.In other words, a page can’t have rows from two or more tables or index.

  • 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.The data is moved into memory (the buffer pool) as needed and the modified or newly created pages are asynchronously written to the disk generating mostly random IO.

    L'archiviazione per le tabelle con ottimizzazione per la memoria presenta gli attributi chiave seguenti:Storage for memory-optimized tables has following key attributes:

  • Tutte le tabelle con ottimizzazione per la memoria sono mappate a un filegroup di dati con ottimizzazione per la memoria.All memory-optimized tables are mapped to a memory-optimized data-filegroup. Questo filegroup usa sintassi e semantica simili a Filestream.This filegroup uses syntax and semantics similar to Filestream.

  • Non sono presenti pagine e i dati vengono salvati in modo permanente come riga.There are no pages and the data is persisted as a row.

  • Tutte le modifiche apportate alle tabelle con ottimizzazione per la memoria vengono archiviate aggiungendole ai file attivi.All changes to memory-optimized tables are stored by appending to active files. La lettura e la scrittura nei file è sequenziale.Both reading and writing to files is sequential.

  • Un aggiornamento viene implementato come un'eliminazione seguita da un inserimento.An update is implemented as a delete followed by an insert. Le righe eliminate non vengono rimosse immediatamente dalla risorsa di archiviazione.The deleted rows are not immediately removed from the storage. 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.The deleted rows are removed by a background process, called MERGE, based on a policy as described in Durability for Memory-Optimized Tables.

  • A differenza delle tabelle basate su disco, lo spazio di archiviazione per le tabelle con ottimizzazione per la memoria non è compresso.Unlike disk-based tables, storage for memory-optimized tables is not compressed. Quando si esegue la migrazione di una tabella basata su disco (ROW o PAGE) compressa a una tabella con ottimizzazione per la memoria, è necessario tenere conto della variazione di dimensioni.When migrating a compressed (ROW or PAGE) disk-based table to memory-optimized table, you will need to account for the change in size.

  • Una tabella con ottimizzazione per la memoria può essere durevole o non durevole.A memory-optimized table can be durable or can be non-durable. È sufficiente configurare l'archiviazione per le tabelle con ottimizzazione per la memoria durevoli.You only need to configure storage for durable memory-optimized tables.

    In questa sezione vengono descritte le coppie di file di checkpoint e altri aspetti della modalità di archiviazione dei dati nelle tabelle con ottimizzazione per la memoria.This section describes checkpoint file pairs and other aspects of how data in memory-optimized tables is stored.

    Contenuto della sezione:Topics in this section:

  • Configurazione dell'archiviazione per le tabelle con ottimizzazione per la memoriaConfiguring Storage for Memory-Optimized Tables

  • Filegroup con ottimizzazione per la memoriaThe Memory Optimized Filegroup

  • Durabilità per tabelle con ottimizzazione per la memoriaDurability for Memory-Optimized Tables

  • Operazione su checkpoint per le tabelle con ottimizzazione per la memoriaCheckpoint Operation for Memory-Optimized Tables

  • Definizione di durabilità per gli oggetti con ottimizzazione per la memoriaDefining Durability for Memory-Optimized Objects

  • Confronto dell'archiviazione delle tabelle basate su disco con quella delle tabelle con ottimizzazione per la memoriaComparing Disk-Based Table Storage to Memory-Optimized Table Storage

Vedere ancheSee Also

OLTP in memoria (ottimizzazione per la memoria)In-Memory OLTP (In-Memory Optimization)