Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
van Azure SQL Managed Instance
In dit artikel wordt beschreven hoe het werken met een geheugengeoptimaliseerde temporele tabel met systeemversies verschilt van het werken met een schijfgebaseerde temporele tabel met systeemversies.
Note
Tijdelijke tabellen die zijn geoptimaliseerd voor geheugen, zijn alleen beschikbaar in SQL Server en Azure SQL Managed Instance. Tabellen en tijdelijke tabellen die zijn geoptimaliseerd voor geheugen, zijn onafhankelijk beschikbaar in Azure SQL Database.
Metagegevens detecteren
Als je metadata over een geheugengeoptimaliseerde, systeemgeversioneerde temporele tabel wilt achterhalen, combineer je de informatie uit sys.tables en sys.internal_tables. Een systeemversiebeheerde temporele tabel wordt weergegeven als de parent_object_id kolom van de interne geschiedenistabel in het geheugen.
In dit voorbeeld ziet u hoe u query's kunt uitvoeren op deze tabellen en deze tabellen kunt samenvoegen.
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;
Gegevens wijzigen
Je kunt voor geheugen geoptimaliseerde temporele tabellen aanpassen met behulp van systeemeigen gecompileerde opgeslagen procedures. Deze procedures stellen je in staat niet-temporele geheugen-geoptimaliseerde tabellen te converteren en bestaande native opgeslagen procedures te behouden.
Dit voorbeeld laat zien hoe je een bestaande tabel kunt aanpassen in een native gecompileerde 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;
Verwante onderwerpen
- Systeem-geversioneerde temporele tabellen met geheugen-geoptimaliseerde tabellen
- Maak een geheugen-geoptimaliseerde systeem-geversioneerde temporele tabel
- Geheugen-geoptimaliseerde systeem-gegenereerde temporele tabellen bewaken
- Geheugen-geoptimaliseerde systeemgegenereerde versie van prestaties van een tijdelijke tabel
- Tijdelijke tabellen
- consistentiecontroles van het tijdelijke tabelsysteem
- Beheer retentie van historische gegevens in systeem-geversioneerde temporele tabellen
- weergaven en functies van metagegevens van tijdelijke tabellen