Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
da Instância Gerenciada de SQL do Azure
Este artigo descreve como trabalhar com uma tabela temporal versionada pelo sistema otimizada para memória difere de trabalhar com uma tabela temporal versionada pelo 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 de 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 versionada pelo sistema otimizada para memória, combine informações de sys.tables e sys.internal_tables. Uma tabela temporal versionada pelo sistema aparece como a coluna parent_object_id da tabela de histórico interna na 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
Você pode modificar tabelas temporais otimizadas para memória por meio de procedimentos armazenados compilados nativamente. Esses procedimentos permitem converter tabelas otimizadas para memória não temporal e manter procedimentos nativamente armazenados existentes.
Este exemplo mostra como modificar uma tabela existente em um 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
- Criar uma tabela temporal versionada do sistema otimizada para memória
- Monitorar tabelas temporais versionadas pelo sistema otimizadas para memória
- Desempenho de tabela temporal com versão do sistema otimizada para memória
- Tabelas temporais
- Verificações de consistência do sistema de tabela temporal
- Gerenciar a retenção de dados históricos em tabelas temporárias com versão do sistema
- Exibições e funções de metadados de tabela temporal