Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2016 (13.x) и более поздним версиям
Управляемый экземпляр SQL Azure
В этой статье описывается, чем работа с системной временной таблицей, оптимизированной для памяти, отличается от работы с дисковой системной временной таблицей.
Note
Оптимизированные для памяти временные таблицы доступны только в SQL Server и Управляемом экземпляре SQL Azure. Оптимизированные для памяти таблицы и темпоральные таблицы доступны независимо в Базе данных SQL Azure.
Обнаружение метаданных
Чтобы найти метаданные о системной временной таблице, оптимизированной для памяти, объедините информацию из sys.tables и 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 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;
Изменение данных
Вы можете изменять оптимизированные по памяти временные таблицы с помощью нативно скомпилированных сохранённых процедур. Эти процедуры позволяют преобразовывать таблицы, оптимизированные для работы в памяти и не являющиеся темпоральными, и сохранять существующие скомпилированные хранимые процедуры.
Этот пример показывает, как изменить существующую таблицу в нативно скомпилированном модуле.
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;
Связанные материалы
- Системно-версионированные темпоральные таблицы с таблицами, оптимизированными для памяти
- Создайте мемориально-оптимизированную системно-версионную темпоральную таблицу
- Мониторинг системно-версионных темпоральных таблиц, оптимизированных для памяти
- Производительность системно-версионной темпоральной таблицы, оптимизированной для памяти
- Темпоральные таблицы
- Проверки согласованности систем темпоральных таблиц
- Управление хранением исторических данных в системных темпоральных таблицах
- Представления и функции темпоральных метаданных таблицы