Bekerja dengan tabel temporal versi sistem yang dioptimalkan memori
Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL Database Azure SQL Managed Instance yang lebih baru
Artikel ini membahas cara kerja dengan tabel temporal versi sistem yang dioptimalkan memori berbeda dari bekerja dengan tabel temporal versi sistem berbasis disk.
Catatan
Tabel temporal yang dioptimalkan memori hanya tersedia di SQL Server, dan bukan Azure SQL Database.
Menemukan metadata
Untuk menemukan metadata tentang tabel temporal versi sistem yang dioptimalkan memori, Anda perlu menggabungkan informasi dari sys.tables dan sys.internal_tables. Tabel temporal versi sistem disajikan sebagai parent_object_id tabel riwayat dalam memori internal
Contoh ini memperlihatkan cara mengkueri dan menggabungkan tabel ini.
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
INNER JOIN sys.tables T1
ON IT.parent_object_id = T1.object_id
INNER JOIN sys.tables T2
ON T1.history_table_id = T2.object_id
WHERE T1.is_memory_optimized = 1
AND T1.temporal_type = 2;
Mengubah data
Tabel temporal yang dioptimalkan memori dapat dimodifikasi melalui prosedur tersimpan yang dikompilasi secara asli, yang memungkinkan Anda mengonversi tabel yang dioptimalkan memori non-temporal, dan mempertahankan prosedur tersimpan secara asli yang ada.
Contoh ini bagaimana tabel yang dibuat sebelumnya dapat dimodifikasi dalam modul yang dikompilasi secara asli.
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;
Konten terkait
- Tabel temporal versi sistem dengan tabel memori yang dioptimalkan
- Membuat tabel temporal versi sistem yang dioptimalkan memori
- Memantau tabel temporal versi sistem yang dioptimalkan memori
- Performa tabel temporal versi sistem yang dioptimalkan memori
- Tabel temporal
- Pemeriksaan konsistensi sistem tabel temporal
- Mengelola retensi data historis dalam tabel temporal versi sistem
- Tampilan dan fungsi metadata tabel temporal