Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: 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;
Связанные материалы
- Системно-версионированные темпоральные таблицы с таблицами, оптимизированными для памяти
- Создайте мемориально-оптимизированную системно-версионную темпоральную таблицу
- Мониторинг системно-версионных темпоральных таблиц, оптимизированных для памяти
- Производительность системно-версионной темпоральной таблицы, оптимизированной для памяти
- Темпоральные таблицы
- Проверки согласованности систем темпоральных таблиц
- Управление хранением исторических данных в системных темпоральных таблицах
- Представления и функции темпоральных метаданных таблицы