Requisiti per l'uso di tabelle ottimizzate per la memoria

Si applica a: SQL Server

Questo articolo descrive i requisiti per l'adozione delle funzionalità in memoria in SQL Server.

Requisiti

In aggiunta ai requisiti indicati in SQL Server 2022: requisiti hardware e software, per usare OLTP in memoria sono necessari i requisiti seguenti:

  • SQL Server 2016 (13.x) SP 1 e versioni successive, qualsiasi edizione. Per SQL Server 2014 (12.x) ed SQL Server 2016 (13.x) RTM (pre-SP1) sono necessarie le edizioni Enterprise, Developer o Evaluation.

  • OLTP in memoria richiede la versione di SQL Server a 64 bit.

  • SQL Server richiede memoria sufficiente per contenere i dati in tabelle ottimizzate per la memoria e indici, nonché memoria aggiuntiva per supportare il carico di lavoro in linea. Per altre informazioni, vedere Stimare i requisiti di memoria delle tabelle con ottimizzazione per la memoria.

  • Quando esegui SQ in una macchina virtuale (VM), assicurati che la memoria allocata alla macchina virtuale sia sufficiente per supportare la memoria necessaria per gli indici e le tabelle ottimizzate per la memoria. A seconda dell'applicazione host della macchina virtuale, l'opzione di configurazione per garantire l'allocazione di memoria per la macchina virtuale può essere chiamata prenotazione di memoria oppure, se viene usata la memoria dinamica, RAM minima. Assicurati che queste impostazioni siano sufficienti per soddisfare le esigenze dei database in SQL Server.

  • Liberare una quantità di spazio su disco corrispondente al doppio delle dimensioni delle tabelle ottimizzate per la memoria durevoli.

  • Un processore deve supportare l'istruzione cmpxchg16b per l'uso di OLTP in memoria. Tutti i moderni processori a 64 bit supportano cmpxchg16b.

    Se usi una macchina virtuale e SQL Server visualizza un errore causato da un processore di versione precedente, controlla se l'applicazione host della macchina virtuale include un'opzione di configurazione che consente l'uso di cmpxchg16b. In caso contrario, è possibile usare Hyper-V, che supporta cmpxchg16b senza dover modificare l'opzione di configurazione.

  • OLTP in memoria viene installato come parte dei servizi del motore di database.

    Per installare la generazione del report (Determinare se una tabella o una stored procedure deve essere trasferita a OLTP in memoria) e SQL Server Management Studio (per gestire OLTP In memoria tramite Esplora oggetti di SQL Server Management Studio), scaricare SQL Server Management Studio (SSMS).

Nota

Note importanti sull'uso di OLTP in memoria

  • In SQL Server 2016 (13.x) e versioni successive, non esiste alcun limite alle dimensioni delle tabelle ottimizzate per la memoria, ad eccezione della memoria disponibile.

  • In SQL Server 2014 (12.x), le dimensioni totali in memoria di tutte le tabelle durevoli di un database non devono superare i 250 GB. Per altre informazioni, vedere Stimare i requisiti di memoria delle tabelle con ottimizzazione per la memoria.

Nota

A partire da SQL Server 2016 (13.x) SP1, le edizioni Standard ed Express supportano OLTP in memoria, ma impongono quote sulla quantità di memoria che è possibile usare per le tabelle ottimizzate per la memoria in un database specifico. Nell'edizione Standard tale quota è di 32 GB per ogni database; nell'edizione Express è di 352 MB per ogni database.

  • Se si creano uno o più database con tabelle ottimizzate per la memoria, è consigliabile abilitare l'inizializzazione immediata concedendo all'account di avvio del servizio SQL Server il diritto utente SE_MANAGE_VOLUME_NAME. Senza l'inizializzazione immediata dei file, i file di archiviazione ottimizzati per la memoria (file di dati e differenziali) vengono inizializzati al momento della creazione. Tale operazione può causare una riduzione delle prestazioni del carico di lavoro. Per altre informazioni sull'inizializzazione immediata dei file e su come abilitarla, vedi Inizializzazione immediata dei file di database.

  • Problema noto: per i database con tabelle ottimizzate per la memoria, l'esecuzione di un backup del log delle transazioni senza ripristino e l'esecuzione successiva di un ripristino del log delle transazioni con ripristino può comportare un processo di ripristino del database che non risponde. Questo problema può influire anche sulla funzionalità di log shipping. Per risolvere questo problema, è possibile riavviare l'istanza di SQL Server prima di avviare il processo di ripristino.