Condividi tramite


Creare una tabella ottimizzata per la memoria

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

Le tabelle ottimizzate per la memoria sono una funzionalità di SQL Server in cui si trova l'intera tabella in memoria. Una seconda copia dei dati della tabella viene mantenuta su disco. I dati nelle tabelle ottimizzate per la memoria vengono letti dal disco solo durante il recupero del database. Ad esempio dopo un riavvio del server. È possibile creare tabelle ottimizzate per la memoria nella progettazione tabelle in Azure Data Studio.

Nota

Le tabelle ottimizzate per la memoria devono appartenere a un filegroup. Per altre informazioni, vedere questa documentazione sul filegroup ottimizzato per la memoria.

Le tabelle ottimizzate per la memoria devono contenere una chiave primaria non cluster. Per un'introduzione alle tabelle ottimizzate per la memoria, vedere l'articolo Introduzione alle tabelle ottimizzate per la memoria. In aggiunta, ogni tabella ottimizzata per la memoria deve contenere almeno un indice.

Creare una tabella ottimizzata per la memoria

  1. Per creare una tabella ottimizzata per la memoria, occorre verificare che sia stato creato un filegroup per il database. In Esplora oggetti aprire una nuova finestra dell'editor di query a livello di server perché verrà creato un database completamente nuovo in cui risiederà la tabella ottimizzata per la memoria. Copiare, incollare ed eseguire il seguente codice nell'editor di query:

    CREATE DATABASE imoltp   
    GO  
    
    --------------------------------------  
    -- create database with a memory-optimized
    -- filegroup and a container.
    
    ALTER DATABASE imoltp ADD FILEGROUP imoltp_mod
        CONTAINS MEMORY_OPTIMIZED_DATA;
    
    ALTER DATABASE imoltp ADD FILE (
        name='imoltp_mod1', filename='c:\data\imoltp_mod1')
        TO FILEGROUP imoltp_mod;
    
    ALTER DATABASE imoltp
        SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON;
    GO  
    --
    

    Il codice precedente crea un nuovo database, aggiunge un filegroup al database, aggiunge un file al filegroup e infine imposta il livello di isolamento per qualsiasi tabella ottimizzata per la memoria aggiunta al database a SNAPSHOT.

  2. Creare quindi la tabella aprendo il database imoltp da Esplora oggetti, facendo clic con il pulsante destro del mouse sulla cartella Tabelle e scegliendo Nuova tabella. Si apre la visualizzazione Progettazione tabelle. Assegnare la chiave primaria per questa tabella (assicurarsi che questa chiave primaria non sia clustering deselezionando la casella di controllo Clustered nelle impostazioni chiave primaria)

    Screenshot della finestra Progettazione tabelle che mostra come creare una tabella ottimizzata per la memoria con una chiave primaria non cluster.

  3. Nel riquadro proprietà tabelle. Selezionare la casella di controllo Ottimizzata per la memoria. Verrà generato l'elenco a discesa Durabilità in cui è possibile scegliere se si vuole archiviare in memoria solo lo schema o sia lo schema che i dati. Selezionando solo "Schema" viene salvato solo lo schema del database in memoria. Come si può notare nell'immagine seguente, lo script è stato aggiornato in base alle modifiche.

    Screenshot della finestra Progettazione tabelle che mostra la tabella ottimizzata per la memoria con la configurazione Solo schema.

    Selezionando solo Schema viene salvato solo lo schema in memoria. Selezionando Schema e dati, vengono salvati in memoria sia lo schema che i dati. Si noti la modifica nello script.

    Screenshot della finestra Progettazione tabelle che mostra la tabella ottimizzata per la memoria con la configurazione Solo schema.

Nota

Progettazione tabelle supporta anche indici hash, indici columnstore e possono essere configurati durante la creazione della tabella ottimizzata per la memoria.

Passaggi successivi