Bekerja dengan Tabel Temporal Memory-Optimized System-Versioned
Berlaku untuk: SQL Server 2016 (13.x) dan database Azure SQL yang lebih baru Azure SQL Managed Instance
Topik ini membahas cara bekerja dengan tabel temporal versi sistem yang dioptimalkan memori berbeda dari bekerja dengan tabel temporal versi sistem berbasis disk.
Catatan
Menggunakan Temporal dengan tabel memori yang dioptimalkan hanya berlaku untuk SQL Server dan tidak berlaku untuk SQL Database.
Menemukan Metadata
Untuk menemukan metadata tentang tabel temporal versi sistem yang dioptimalkan memori, Anda perlu menggabungkan informasi dari sys.tables (Transact-SQL) dan sys.internal_tables (Transact-SQL). 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
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
Memodifikasi Data
Tabel temporal yang dioptimalkan memori versi sistem dapat dimodifikasi melalui prosedur tersimpan yang dikompilasi secara asli, yang memungkinkan Anda mengonversi tabel yang dioptimalkan memori non-temporal ke penerapan versi sistem dan mempertahankan prosedur yang disimpan secara asli.
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 ;
Lihat juga
- Tabel Temporal Versi Sistem dengan Tabel Memory-Optimized
- Membuat Tabel Temporal Memory-Optimized System-Versioned
- Memantau Memory-Optimized System-Versioned Tabel Temporal
- Pertimbangan Performa dengan Tabel Temporal Memory-Optimized System-Versioned
- Tabel Temporal
- Pemeriksaan Konsistensi Sistem Tabel Temporal
- Mengelola Retensi Data Historis dalam Tabel Temporal System-Versioned
- Tampilan dan Fungsi Metadata Tabel Temporal
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk