Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões
posteriores Instância Gerenciada SQL do Azure
Este artigo descreve como trabalhar com uma tabela temporal de sistema otimizada para memória difere de trabalhar com uma tabela temporal de sistema baseada em disco.
Note
As tabelas temporais com otimização de memória só estão disponíveis no SQL Server e na Instância Gerenciada SQL do Azure. Tabelas com otimização de memória e tabelas temporais estão disponíveis independentemente no Banco de Dados SQL do Azure.
Descobrir metadados
Para descobrir metadados sobre uma tabela temporal otimizada para a memória e versão do sistema, combine informações do sys.tables e sys.internal_tables. Uma tabela temporal com versão controlada pelo sistema aparece na coluna parent_object_id da tabela de histórico interna em memória.
Este exemplo mostra como consultar e unir essas tabelas.
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;
Modificar dados
Pode modificar tabelas temporais otimizadas para memória através de procedimentos armazenados compilados nativamente. Estes procedimentos permitem-lhe converter tabelas não otimizadas para memória temporal e manter procedimentos nativos já existentes.
Este exemplo mostra como modificar uma tabela existente num módulo compilado 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;
Conteúdo relacionado
- Tabelas temporais versionadas pelo sistema com tabelas otimizadas para memória
- Crie uma tabela temporal versionada pelo sistema otimizada em termos de memória
- Monitorizar tabelas temporais versionadas por sistema otimizadas para memória
- Desempenho da tabela temporal com versão do sistema otimizada para memória
- Tabelas temporais
- Verificações de consistência do sistema de tabela temporal
- Gerencie a retenção de dados históricos em tabelas temporais versionadas pelo sistema
- Exibições e funções de metadados de tabela temporal