Verwenden von speicheroptimierten temporalen Tabellen mit Systemversionsverwaltung
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure SQL Managed Instance
In diesem Thema wird erläutert, wie sich die Verwendung einer speicheroptimierten temporalen Tabelle mit Systemversionsverwaltung von der Verwendung einer datenträgerbasierten temporalen Tabelle mit Systemversionsverwaltung unterscheidet.
Hinweis
Das Verwenden von temporalen mit speicheroptimierten Tabellen gilt nur für SQL Server, und nicht für SQL-Datenbank.
Ermittlung von Metadaten
Um Metadaten zu einer speicheroptimierten temporalen Tabelle mit Systemversionsverwaltung zu ermitteln, müssen Sie Informationen aus sys.tables (Transact-SQL) und sys.internal_tables (Transact-SQL) kombinieren. Eine temporale Tabelle mit Systemversionsverwaltung ist als "parent_object_id" der speicherinternen Verlaufstabelle vorhanden.
Dieses Beispiel zeigt, wie Sie diese Tabellen abfragen und verknüpfen können.
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
Ändern von Daten
Speicheroptimierte temporale Tabellen mit Systemversionsverwaltung können über systeminterne kompilierte gespeicherte Prozeduren geändert werden, sodass Sie die Möglichkeit erhalten, nicht temporale speicheroptimierte Tabellen in Tabellen mit Systemversionsverwaltung zu konvertieren und vorhandene systemeigene gespeicherte Prozeduren beizubehalten.
Dieses Beispiel zeigt, wie eine zuvor erstellte Beispieltabelle in ein systemintern kompiliertes Modul geändert werden kann.
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 ;
Weitere Informationen
- Temporale Tabellen mit Systemversionsverwaltung und speicheroptimierten Tabellen
- Erstellen einer speicheroptimierten temporalen Tabelle mit Systemversionsverwaltung
- Überwachung von speicheroptimierten temporalen Tabellen mit Systemversionsverwaltung
- Überlegungen zur Systemleistung bei Verwendung von speicheroptimierten temporalen Tabellen mit Systemversionsverwaltung
- Temporale Tabellen
- Systemkonsistenzprüfungen von temporalen Tabellen
- Verwalten der Beibehaltung von Verlaufsdaten in temporalen Tabellen mit Systemversionsverwaltung
- Metadatenansichten und Funktionen für temporale Tabellen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für