Utilizzo di una tabella temporale con controllo delle versioni di sistema e ottimizzazione per la memoriaWorking with Memory-Optimized System-Versioned Temporal Tables

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

Questo argomento illustra in che modo l'utilizzo di una tabella temporale con controllo delle versioni di sistema e ottimizzazione per la memoria è diverso dall'utilizzo di una tabella di temporale con controllo delle versioni di sistema basata su disco.This topic discusses how working with a memory-optimized system-versioned temporal table is different from working with a disk-based system-versioned temporal table.

Nota

L'uso di tabelle temporali con ottimizzazione per la memoria è applicabile solo a SQL Server 2017SQL Server 2017 e non a Database SQLSQL Database.Using Temporal with memory optimized tables only applies to SQL Server 2017SQL Server 2017 and does not apply to Database SQLSQL Database.

Individuazione dei metadatiDiscovering Metadata

Per trovare i metadati relativi a una tabella temporale con controllo delle versioni di sistema e ottimizzazione per la memoria, è necessario combinare informazioni provenienti da sys.tables (Transact-SQL) e sys.internal_tables (Transact-SQL).To discover metadata about a memory-optimized system-versioned temporal table, you need to combine information from sys.tables (Transact-SQL) and sys.internal_tables (Transact-SQL). Una tabella temporale con controllo delle versioni di sistema viene presentata come parent_object_id della tabella di cronologia in memoria internaA system-versioned temporal table is presented as parent_object_id of the internal in-memory history table

Questo esempio mostra come eseguire una query e creare un join di tali tabelle.This example shows how to query and join these tables.

SELECT SCHEMA_NAME (T1.schema_id) as TemporalTableSchema  
   , OBJECT_NAME(IT.parent_object_id) as TemporalTableName  
   , T1.object_id as TemporalTableObjectId  
   , IT.Name as InternalHistoryStagingName   
   , SCHEMA_NAME (T2.schema_id) as HistoryTableSchema  
   , OBJECT_NAME (T1.history_table_id) as HistoryTableName   
FROM sys.internal_tables IT    
JOIN sys.tables T1   
   ON IT.parent_object_id = T1.object_id   
JOIN sys.tables T2   
   ON T1.history_table_id = T2.object_id   
WHERE T1.is_memory_optimized  = 1 AND T1.temporal_type = 2  

Modifica dei datiModifying Data

È possibile modificare le tabelle temporali con ottimizzazione per la memoria attraverso le stored procedure compilate in modo nativo, che consentono di convertire le tabelle con ottimizzazione per la memoria non temporali in tabelle con controllo delle versioni e mantenere le stored procedure compilate in modo nativo.System-versioned memory-optimized temporal tables can be modified through natively compiled stored procedures, which enables you to convert non-temporal memory-optimized tables to system-versioning and keep existing natively stored procedures.

Questo esempio mostra in che modo è possibile modificare una tabella creata in precedenza in un modulo compilato in modo nativo.This example how previously created table can be modified in natively compiled module.

CREATE PROCEDURE dbo.UpdateFXCurrencyPair  
   (   
       @ProviderID int  
     , @CurrencyID1 int  
     , @CurrencyID2 int  
     , @BidRate decimal(8,4)  
     , @AskRate decimal(8,4)   
   )   
WITH NATIVE_COMPILATION, SCHEMABINDING  
   , EXECUTE AS OWNER   
AS    
   BEGIN ATOMIC WITH   
   (TRANSACTION ISOLATION LEVEL = SNAPSHOT  , LANGUAGE = N'English')   
      UPDATE dbo.FXCurrencyPairs SET AskRate = @AskRate, BidRate  = @BidRate   
     WHERE ProviderID = @ProviderID AND CurrencyID1 = @CurrencyID1 AND CurrencyID2 = @CurrencyID2   
END   
GO ;  

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
Monitoraggio di una tabella temporale con controllo delle versioni di sistema e ottimizzazione per la memoria Monitoring Memory-Optimized System-Versioned Temporal Tables
Considerazioni sulle prestazioni con le tabelle temporali con controllo delle versioni di sistema e ottimizzazione per la memoria Performance Considerations with 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