Configurazione dell'archiviazione per le tabelle con ottimizzazione per la memoria

Si applica a:SQL Server

È necessario configurare la capacità di archiviazione e le operazioni di input/output al secondo (IOPS).

Capacità di archiviazione

Usare le informazioni in Stimare i requisiti di memoria delle tabelle ottimizzate per la memoria per stimare le dimensioni in memoria delle tabelle ottimizzate per la memoria durevoli del database. Poiché gli indici non vengono mantenuti per le tabelle ottimizzate per la memoria, non includere le dimensioni degli indici.

Dopo aver determinato le dimensioni, è necessario fornire spazio su disco sufficiente per contenere i file di checkpoint, che vengono usati per archiviare i dati appena modificati. I dati archiviati contengono non solo il contenuto di nuove righe aggiunte alle tabelle in memoria, ma anche nuove versioni delle righe esistenti. Quando le righe vengono inserite o aggiornate, la quantità di dati archiviati aumenta. Le versioni delle righe vengono unite e le risorse di archiviazione vengono recuperate quando si verifica il troncamento del log. Se per qualsiasi motivo il troncamento del log subisce ritardi, le dimensioni dell'archivio OLTP in memoria aumenteranno.

Un buon punto di partenza per ridimensionare le risorse di archiviazione per questa area consiste nel riservare una quantità di spazio pari a quattro volte le dimensioni delle tabelle durevoli in memoria. Monitorare l'utilizzo dello spazio e prepararsi a espandere le risorse di archiviazione disponibili, se necessario.

IOPS di archiviazione

OLTP in memoria consente di aumentare notevolmente la velocità effettiva del carico di lavoro. Pertanto, è importante verificare che le operazioni di IO non rappresentino un collo di bottiglia.

  • Quando si esegue la migrazione delle tabelle basate su disco nelle tabelle ottimizzate per la memoria, verificare che il log delle transazioni sia in un supporto di archiviazione che supporti l'attività aumentata del log delle transazioni. Ad esempio, se il supporto di archiviazione supporta le operazioni del log delle transazioni a 100 MB/sec e le tabelle ottimizzate per la memoria restituiscono prestazioni cinque volte superiori, anche il supporto di archiviazione del log delle transazioni deve essere in grado di supportare un incremento di cinque volte delle prestazioni, per impedire all'attività del log delle transazioni di diventare un collo di bottiglia.

  • Le tabelle ottimizzate per la memoria sono persistenti nei file di checkpoint distribuiti in uno o più contenitori. In genere è necessario eseguire il mapping di ogni contenitore al relativo dispositivo di archiviazione, che consente di aumentare la capacità di archiviazione e migliorare gli IOPS. È necessario assicurarsi che le operazioni di IOPS sequenziali del supporto di archiviazione possano supportare fino a 3 volte la velocità effettiva del log delle transazioni. Le operazioni di scrittura nei file di checkpoint sono di 256 kB per i file di dati e di 4 kB per i file differenziali.

    • Se, ad esempio, le tabelle ottimizzate per la memoria generano 500 MB/sec di attività nel log delle transazioni, l'archiviazione per le tabelle ottimizzate per la memoria deve supportare IOPS da 1,5 GB/sec. La necessità di supportare fino a 3 volte la velocità effettiva del log delle transazioni deriva dall'analisi che le coppie di file di dati e differenziali vengono prima scritti con dati iniziali e quindi devono essere letti e riscritti come parte di un'operazione di merge.
  • Un altro fattore per stimare gli IOPS per l'archiviazione è il tempo di recupero per le tabelle ottimizzate per la memoria. I dati delle tabelle durevoli devono essere letti in memoria prima che un database viene reso disponibile alle applicazioni. In genere, il caricamento dei dati nelle tabelle ottimizzate per la memoria può essere eseguito alla velocità delle operazioni di IOPS. Pertanto se l'archiviazione totale per le tabelle ottimizzate per la memoria durevoli è di 60 GB e si desidera essere in grado di caricare i dati in 1 minuto, le operazioni di IOPS per l'archiviazione devono essere impostati su 1 GB/sec.

  • I file di checkpoint vengono in genere distribuiti in modo uniforme in tutti i contenitori, se lo spazio disponibile lo consente. Con SQL Server 2014 è necessario eseguire il provisioning di un numero dispari di contenitori per ottenere una distribuzione uniforme. A partire dalla versione 2016, sia un numero pari che un numero dispari di contenitori permette una distribuzione uniforme.

Crittografia

In SQL Server 2016 (13.x) e versioni successive l'archiviazione per le tabelle ottimizzate per la memoria verrà crittografata quando inattive come parte dell'abilitazione di Transparent Data Encryption (TDE) nel database. Per altre informazioni, vedere Transparent Data Encryption. In SQL Server 2014 (12.x) i file di checkpoint non vengono crittografati, anche se TDE è abilitata nel database.

I dati nelle tabelle ottimizzate per la memoria non durevoli (SCHEMA_ONLY) non vengono mai scritti su disco. Di conseguenza, TDE non si applica a tali tabelle.

Vedi anche

Creazione e gestione dell'archiviazione per gli oggetti con ottimizzazione per la memoria