Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
, Database SQL di Azure
e Istanza gestita di SQL di Azure
| Categorie | Tabella basata su disco | Tabella durevole con ottimizzazione per la memoria |
|---|---|---|
| DDL | Le informazioni sui metadati vengono archiviate in tabelle di sistema nel filegroup primario del database e sono accessibili tramite le viste del catalogo. | Le informazioni sui metadati vengono archiviate in tabelle di sistema nel filegroup primario del database e sono accessibili tramite le viste del catalogo. |
| Struttura | Le righe vengono archiviate in pagine da 8 KB. Una pagina contiene solo righe della stessa tabella. | Le righe vengono archiviate come singole righe. Non è presente alcuna struttura della pagina. Due righe consecutive in un file di dati possono appartenere a tabelle ottimizzate per la memoria diverse. |
| Indici | Gli indici vengono archiviati in una struttura della pagina simile alle righe di dati. | Solo la definizione dell'indice è persistente (non le righe di indice). Gli indici vengono gestiti in memoria e generati di nuovo quando la tabella ottimizzata per la memoria viene caricata in memoria come parte del riavvio di un database. Poiché le righe di indice non sono persistenti, non viene effettuata alcuna registrazione per le modifiche dell'indice. |
| Operazione DML | Il primo passaggio consiste nell'individuare la pagina, quindi nel caricarla nel pool di buffer. Inserisci SQL Server inserisce la riga nella pagina tenendo conto dell'ordinamento delle righe in caso di indice cluster. Elimina SQL Server individua la riga da eliminare nella pagina e la contrassegna come eliminata. Aggiornamento SQL Server individua la riga nella pagina. L'aggiornamento viene eseguito sul posto per le colonne non chiave. L'aggiornamento delle colonne chiave viene eseguito tramite un'operazione di eliminazione e inserimento. Al termine dell'operazione DML, le pagine interessate vengono scritte su disco nell'ambito dei criteri del buffer pool, di un checkpoint o del commit di una transazione per le operazioni con registrazione minima. Sia le operazioni di lettura sia quelle di scrittura nelle pagine comportano attività di I/O non necessaria. |
Per le tabelle ottimizzate per la memoria, poiché i dati risiedono in memoria, le operazioni DML vengono eseguite direttamente in memoria. Esiste un thread in esecuzione in background che legge i record del log per le tabelle ottimizzate per la memoria e li rende persistenti nei file di dati e delta. Un aggiornamento genera una nuova versione della riga. Ma un aggiornamento viene registrato come una cancellazione seguita da un inserimento. |
| Frammentazione dei dati | La manipolazione dei dati ne comporta la frammentazione che produce pagine riempite parzialmente e pagine logicamente consecutive che non sono contigue su disco. Ciò comporta una riduzione delle prestazioni di accesso ai dati e ne richiede la deframmentazione. | I dati con ottimizzazione per la memoria non vengono archiviati in pagine, pertanto non vengono frammentati. Tuttavia, man mano che le righe vengono aggiornate e cancellate, i file di dati e i file delta devono essere compattati. Questa operazione viene eseguita da un thread in background MERGE basato su un criterio di unione. |
Vedi anche
Creazione e gestione dell'archiviazione per gli oggetti con ottimizzazione per la memoria