Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) e versioni
successive di Istanza gestita di SQL di Azure
Questo articolo descrive come lavorare con una tabella temporale di sistema ottimizzata per la memoria differisce dal lavorare con una tabella temporale di sistema basata su disco.
Note
Le tabelle temporali ottimizzate per la memoria sono disponibili solo in SQL Server e in Istanza gestita di SQL di Azure. Le tabelle ottimizzate per la memoria e le tabelle temporali sono disponibili in modo indipendente nel database SQL di Azure.
Scoprire i metadati
Per scoprire i metadati di una tabella temporale ottimizzata per la memoria e versionata per sistema, combina informazioni da sys.tables e sys.internal_tables. Una tabella temporale versionata al sistema appare come parent_object_id colonna della tabella della cronologia interna in memoria.
Questo esempio mostra come eseguire una query ed effettuare un join di queste tabelle.
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 AS IT
INNER JOIN sys.tables AS T1
ON IT.parent_object_id = T1.object_id
INNER JOIN sys.tables AS T2
ON T1.history_table_id = T2.object_id
WHERE T1.is_memory_optimized = 1
AND T1.temporal_type = 2;
Modificare i dati
Puoi modificare tabelle temporali ottimizzate per la memoria tramite stored procedure compilate nativamente. Queste procedure permettono di convertire tabelle ottimizzate per la memoria non temporale e di mantenere le procedure esistenti memorizzate nativamente.
Questo esempio mostra come modificare una tabella esistente in un modulo compilato nativamente.
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;
Contenuti correlati
- Tabelle temporali versionate a livello di sistema con tabelle ottimizzate per la memoria
- Creare una tabella temporale versione di sistema ottimizzata per la memoria
- Monitorare tabelle temporali ottimizzate per la memoria e versionate a livello di sistema
- Prestazioni delle tabelle temporali ottimizzate per la memoria e con versione di sistema
- Tabelle temporali
- Verifiche di coerenza del sistema delle tabelle temporali
- Gestire la conservazione dei dati storici nelle tabelle temporali versionate dal sistema
- Funzioni e viste per i metadati delle tabelle temporali