Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: SQL Server 2016 (13.x) и более поздним версиям
Azure SQL Managed Instance
В этой статье описывается, как работа с темпоральной таблицей, оптимизированной для памяти, отличается от работы с темпоральной таблицей на основе диска.
Примечание.
Оптимизированные для памяти временные таблицы доступны только в SQL Server и Управляемом экземпляре SQL Azure. Оптимизированные для памяти таблицы и темпоральные таблицы доступны независимо в Базе данных SQL Azure.
Обнаружение метаданных
Чтобы обнаружить метаданные о темпоральной таблице, оптимизированной для памяти, необходимо объединить сведения из системных таблиц и sys.internal_tables. Темпоральная таблица с управлением версиями на системном уровне представлена как parent_object_id внутренней встроенной таблицы истории в памяти.
В этом примере показано, как выполнить запрос к этим таблицам и их соединение.
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;
Изменение данных
Оптимизированные для памяти временные таблицы можно изменять с помощью нативно скомпилированных хранимых процедур, что позволяет преобразовывать не временные оптимизированные для памяти таблицы и сохранять существующие нативно скомпилированные хранимые процедуры.
В этом примере показано, как можно изменить ранее созданную таблицу в модуле, скомпилированном в собственном коде.
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;
Связанный контент
- Системные темпоральные таблицы с оптимизированными для памяти таблицами
- Создание системно-версированной темпоральной таблицы, оптимизированной для памяти
- Отслеживайте оптимизированные по памяти системные версионные темпоральные таблицы
- Производительность темпоральной таблицы, оптимизированной для памяти
- Темпоральные таблицы
- Проверки согласованности систем темпоральных таблиц
- Управление хранением исторических данных в системных темпоральных таблицах
- Представления и функции темпоральных метаданных таблицы