Prestazioni delle tabelle temporali con controllo delle versioni di sistema e ottimizzazione per la memoriaMemory-Optimized System-Versioned Temporal Tables Performance

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2016)noDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Questo argomento presenta alcune considerazioni sulle prestazioni specifiche quando si usano le tabelle temporali con ottimizzazione per la memoria e controllo delle versioni di sistema.This topic discusses some specific performance considerations when using system-versioned memory-optimized temporal tables.

  • Quando si aggiunge il controllo elle versioni di sistema a una tabella non temporale è prevedibile un impatto sulle prestazioni nelle operazioni di aggiornamento ed eliminazione perché la tabella di cronologia viene aggiornata automaticamente.When you add system-versioning to an existing non-temporal table expect performance impact on update and delete operations because history table is updated automatically.

  • Ogni operazione di aggiornamento ed eliminazione viene registrata nella tabella di cronologia con ottimizzazione per la memoria interna, per cui può verificarsi un utilizzo imprevisto di memoria se il carico di lavoro fa un uso massiccio di queste due operazioni.Every update and delete is recorded into internal memory-optimized history table, so you can experience unexpected memory consumption if your workload uses those two operations massively. Pertanto si consiglia quanto segue:Therefore we advise you the following:

    • Non eseguire eliminazioni massicce dalla tabella corrente per aumentare la RAM disponibile con la pulizia dello spazio.Do not perform massive deletes from current table in order to increase available RAM by cleaning up the space. È consigliabile eliminare manualmente i dati in più batch intervallando lo scaricamento dati richiamato manualmente richiamando sp_xtp_flush_temporal_historyoppure mentre SYSTEM_VERSIONING = OFF.Consider deleting data in multiple batches with manually invoked data flush in between by invoking sp_xtp_flush_temporal_history, or while SYSTEM_VERSIONING = OFF.

    • Non eseguire aggiornamenti massicci della tabella in una sola volta perché questo può comportare un consumo di memoria due volte superiore rispetto alla memoria necessaria per aggiornare una tabella non temporale con ottimizzazione per la memoria.Do not perform massive table updates at once as it can result in memory consumption that is twice the amount of memory required to update a non-termporal memory-optimized table. Il consumo di memoria raddoppiato è temporaneo perché l'attività di svuotamento dati è regolarmente all'opera per mantenere il consumo di memoria della tabella di gestione temporanea interna entro i limiti previsti per lo stato stabile (circa il 10% del consumo di memoria della tabella temporale corrente).Doubled memory consumption is temporary because data flush task works regularly to keep memory consumption of internal staging table within projected boundaries in the steady state (around 10% of memory consumption of current temporal table). È consigliabile eseguire gli aggiornamenti massicci in più batch o mentre SYSTEM_VERSIONING = OFF, ad esempio usando gli aggiornamenti per impostare i valori predefiniti per le colonne aggiunte.Consider doing massive updates in multiple batches or while SYSTEM_VERSIONING = OFF, such as using updates to set the defaults for newly added columns.

  • Il periodo di attivazione per le attività di scaricamento dati non è configurabile ma è possibile applicare il processo richiamando sp_xtp_flush_temporal_history.Period of activation for the data flush task is not configurable but you can enforce the process by invoking sp_xtp_flush_temporal_history.

  • Si consiglia di usare columnstore cluster come opzione di archiviazione per la tabella di cronologia basata su disco, soprattutto se si prevede di eseguire query di analisi sui dati cronologici che usano funzioni di aggregazione o windowing.Consider using clustered columnstore as a storage option for disk-based history table, especially if you plan to run analytics queries on historical data that make use of aggregate or windowing functions. In questo caso columnstore cluster è una soluzione ottimale per la tabella di cronologia perché fornisce una buona compressione dei dati e si comporta in modo "favorevole all'inserimento", in linea con il modo in cui vengono generati i dati cronologici.In that case clustered columnstore will be an optimal choice for history table as it provides good data compression and behaves “insert-friendly” which is in alignment with how history data is being generated.

Questo articolo è stato utile?Did this Article Help You? Commenti e suggerimentiWe’re Listening

Quali informazioni si stanno cercando? La ricerca ha restituito i risultati desiderati?What information are you looking for, and did you find it? Microsoft incoraggia gli utenti a inviare i propri commenti per migliorare i contenutiWe’re listening to your feedback to improve the content. Inviare eventuali commenti all'indirizzo sqlfeedback@microsoft.comPlease submit your comments to sqlfeedback@microsoft.com

Vedere ancheSee Also

Tabelle temporali con controllo delle versioni di sistema con tabelle con ottimizzazione per la memoria System-Versioned Temporal Tables with Memory-Optimized Tables
Creazione di una tabella temporale con controllo delle versioni di sistema e ottimizzazione per la memoria Creating a Memory-Optimized System-Versioned Temporal Table
Utilizzo di una tabella temporale con controllo delle versioni di sistema e ottimizzazione per la memoria Working with Memory-Optimized System-Versioned Temporal Tables
Monitoraggio di una tabella temporale con controllo delle versioni di sistema e ottimizzazione per la memoria Monitoring Memory-Optimized System-Versioned Temporal Tables
Tabelle temporali Temporal Tables
Verifiche di coerenza del sistema della tabella temporale Temporal Table System Consistency Checks
Gestire la conservazione dei dati cronologici nelle tabelle temporali con controllo delle versioni di sistema Manage Retention of Historical Data in System-Versioned Temporal Tables
Funzioni e viste per i metadati delle tabelle temporali Temporal Table Metadata Views and Functions