Поделиться через


Поддерживаемые типы данных для In-Memory OLTP

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

В этой статье перечислены типы данных, которые не поддерживаются для компонентов выполняющейся в памяти OLTP:

  • Таблицы, оптимизированные для памяти
  • Модули Transact-SQL (T-SQL) в собственном коде

Неподдерживаемые типы данных

Следующие типы данных не поддерживаются:

Значимые поддерживаемые типы данных

Возможности In-Memory OLTP поддерживают большинство типов данных. Следующий список стоит отметить явным образом:

Строковые и двоичные типы Дополнительные сведения
binary и varbinary binary и varbinary
char и varchar char и varchar
nchar и nvarchar nchar и nvarchar

Для предыдущих строковых и двоичных типов данных начиная с SQL Server 2016 (13.x):

  • Отдельная таблица, оптимизированная для памяти, также может иметь несколько длинных столбцов, таких как nvarchar(4000),даже если их длина будет добавляться к большему размеру физической строки размером 8 060 байт.

  • Оптимизированная для памяти таблица может содержать строку максимальной длины и двоичные столбцы типов данных, таких как varchar(max).

Определение LOB-столбцов и других столбцов вне строки

В SQL Server 2016 (13.x) и более поздних версиях оптимизированные для памяти таблицы поддерживают столбцы вне строк, что позволяет одной строке таблицы превышать 8 060 байт. Следующая инструкция Transact-SQL SELECT сообщает обо всех столбцах вне строки для таблиц, оптимизированных для памяти:

  • Все ключевые столбцы индекса сохранены в строке.
    • Ключи неуникальных индексов могут включать столбцы, допускающие значение NULL, в таблицах, оптимизированных для памяти.
    • Индексы можно объявить как UNIQUE в оптимизированной для памяти таблице.
  • Все столбцы LOB хранятся вне строки.
  • Значение max_length из -1 указывает на столбец большого объекта (LOB).
SELECT OBJECT_NAME(m.object_id) AS [table],
       c.name AS [column],
       c.max_length
FROM sys.memory_optimized_tables_internal_attributes AS m
     INNER JOIN sys.columns AS c
         ON m.object_id = c.object_id
        AND m.minor_id = c.column_id
WHERE m.type = 5;

Другие типы данных

Другие типы Дополнительные сведения
Типы таблиц Быстрая временная таблица и переменная таблицы с помощью оптимизации памяти