Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
usługi Azure SQL Managed Instance
Ten artykuł opisuje, jak praca z pamięciowo zoptymalizowaną systemową tabelą czasową różni się od pracy z dyskową tabelą czasową wersjonowaną systemowo.
Note
Tabele czasowe zoptymalizowane pod kątem pamięci są dostępne tylko w programie SQL Server i usłudze Azure SQL Managed Instance. Tabele zoptymalizowane pod kątem pamięci i tabele czasowe są niezależnie dostępne w usłudze Azure SQL Database.
Odnajdywanie metadanych
Aby odkryć metadane dotyczące pamięciowo-zoptymalizowanej tabeli temporalnej zmodyfikowanej systemowo, połącz informacje z sys.tables i sys.internal_tables. Tabela temporalna wersjonowana przez system jest wyświetlana jako kolumna parent_object_id wewnętrznej tabeli historii w pamięci.
W tym przykładzie pokazano, jak wykonywać zapytania i łączyć te tabele.
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;
Modyfikowanie danych
Możesz modyfikować tablice temporalne zoptymalizowane pod kątem pamięci za pomocą natywnie skompilowanych procedur przechowywanych. Procedury te umożliwiają konwersję nietemporalnych tabel zoptymalizowanych pod kątem pamięci oraz zachowanie istniejących natywnie kompilowanych procedur składowanych.
Ten przykład pokazuje, jak modyfikować istniejącą tabelę w natywnie skompilowanym 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;
Treści powiązane
- Systemowo wersjonowane tabele czasowe z tabelą zoptymalizowaną pod kątem pamięci
- Tworzenie tabeli czasowej zoptymalizowanej pod kątem pamięci w wersji systemowej
- Monitorowanie tabel czasowych zoptymalizowanych pod kątem pamięci w wersji systemowej
- Wydajność systemowo wersjonowanych tabel czasowych zoptymalizowanych pod kątem pamięci
- Tabele danych czasowych
- sprawdzanie spójności systemu tabel czasowych
- Zarządzanie przechowywaniem danych historycznych w systemowo wersjonowanych tabelach czasowych
- widoki i funkcje metadanych tabeli temporalnej