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

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse È necessario configurare la capacità di archiviazione e le operazioni di input/output al secondo (IOPS). You need to configure storage capacity and input/output operations per second (IOPS).

Capacità di archiviazioneStorage Capacity

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.Use the information in Estimate Memory Requirements for Memory-Optimized Tables to estimate the in-memory size of the database's durable memory-optimized tables. Poiché gli indici non vengono mantenuti per le tabelle ottimizzate per la memoria, non includere le dimensioni degli indici.Because indexes are not persisted for memory-optimized tables, do not include the size of indexes. Una volta determinata la dimensione, è necessario fornire uno spazio libero su disco quattro volte superiore alla dimensione delle tabelle in memoria durevoli.Once you determine the size, you need to provide disk space that is four times the size of durable, in-memory tables.

IOPS di archiviazioneStorage IOPS

OLTP in memoriaIn-Memory OLTP consente di aumentare notevolmente la velocità effettiva del carico di lavoro. can significantly increase your workload throughput. Pertanto, è importante verificare che le operazioni di IO non rappresentino un collo di bottiglia.Therefore, it is important to ensure that IO is not a bottleneck.

  • 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.When migrating disk-based tables to memory-optimized tables, make sure that the transaction log is on a storage media that can support increased transaction log activity. 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.For example, if your storage media supports transaction log operations at 100 MB/sec, and memory-optimized tables result in five times greater performance, the transaction log's storage media must be able to also support five times performance improvement, to prevent the transaction log activity from becoming a performance bottleneck.

  • Le tabelle ottimizzate per la memoria sono persistenti nei file di checkpoint distribuiti in uno o più contenitori.Memory-optimized tables are persisted in checkpoint files, which are distributed across one or more containers. 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.Each container should typically be mapped to its own storage device and is used both for increased storage capacity and improved 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.You need to ensure that the sequential IOPS of the storage media can support up to 3 times the sustained transaction log throughput. Le operazioni di scrittura nei file di checkpoint sono di 256 KB per i file di dati e di 4 KB per file differenziali.Writes to checkpoint files are 256KB for data files and 4KB for delta files.

    • Ad esempio, se 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.For example, if memory-optimized tables generate a sustained 500MB/sec of activity in the transaction log, the storage for memory-optimized tables must support 1.5GB/sec IOPS. 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.The need to support 3 times the sustained transaction log throughput comes from the observation that the data and delta file pairs are first written with the initial data and then need to be read/re-written as part of a merge operation.
  • Un altro fattore per stimare gli IOPS per l'archiviazione è il tempo di recupero per le tabelle ottimizzate per la memoria.Another factor in estimating the IOPS for storage is the recovery time for memory-optimized tables. I dati delle tabelle durevoli devono essere letti in memoria prima che un database viene reso disponibile alle applicazioni.Data from durable tables must be read into memory before a database is made available to applications. In genere, il caricamento dei dati nelle tabelle ottimizzate per la memoria può essere eseguito alla velocità delle operazioni di IOPS.Commonly, loading data into memory-optimized tables can be done at the speed of 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.So if the total storage for durable, memory-optimized tables is 60 GB and you want to be able to load this data in 1 minute, the IOPS for the storage must be set at 1 GB/sec.

  • I file di checkpoint vengono in genere distribuiti in modo uniforme in tutti i contenitori, se lo spazio disponibile lo consente.Checkpoint files are usually distributed uniformly across all containers, space permitting. 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.With SQL Server 2014 you need to provision an odd number of containers in order to achieve a uniform distribution - starting 2016, both odd and even numbers of containers lead to a uniform distribution.

CrittografiaEncryption

In SQL Server 2016SQL Server 2016lo spazio di archiviazione per le tabelle ottimizzate per la memoria viene crittografato come parte dell'abilitazione di Transparent Data Encryption nel database.In SQL Server 2016SQL Server 2016, the storage for memory-optimized tables will be encrypted as part of enabling TDE on the database. Per altre informazioni sulla crittografia trasparente del database, vedere Transparent Data Encryption (TDE).For more information, see Transparent Data Encryption (TDE). In SQL Server 2014SQL Server 2014 i file di checkpoint non vengono crittografati, anche se TDE è abilitata nel database.In SQL Server 2014SQL Server 2014 checkpoint files are not encrypted even if TDE is enabled on the database.

Vedere ancheSee Also

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