Поддерживаемые типы данных для выполняющейся в памяти OLTP
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
В этой статье перечислены типы данных, которые не поддерживаются для компонентов выполняющейся в памяти OLTP:
Таблицы, оптимизированные для памяти
Модули, скомпилированные в собственном коде T-SQL
Неподдерживаемые типы данных
Следующие типы данных не поддерживаются:
Важные поддерживаемые типы данных
Большинство типов данных поддерживаются компонентами выполняющейся в памяти OLTP. Обратите внимание на следующие компоненты:
Строковые и двоичные типы | Для получения дополнительных сведений |
---|---|
binary и varbinary* | binary и varbinary (Transact-SQL) |
char и varchar* | char и varchar (Transact-SQL) |
nchar и nvarchar* | nchar и nvarchar (Transact-SQL) |
Для предшествующих строковых и двоичных типов данных, начиная с SQL Server 2016:
Отдельная оптимизированная для памяти таблица может также содержать несколько столбцов типа long, например
nvarchar(4000)
, даже если их совокупная длина превысит размер физической строки 8060 байт.Оптимизированная для памяти таблица может содержать строковые и двоичные столбцы с максимальной длиной таких типов данных, например
varchar(max)
.
Определение LOB-столбцов и других столбцов вне строки
Начиная с SQL Server 2016, оптимизированные для памяти таблицы поддерживают хранение столбцов вне строки, что позволяет одной табличной строке иметь размер более 8060 байт. Следующая инструкция Transact-SQL SELECT возвращает все столбцы вне строки для таблиц, оптимизированных для памяти. Обратите внимание на следующие условия.
- Все ключевые столбцы индекса сохранены в строке.
- Теперь ключи неуникальных индексов могут включать столбцы со значениями NULL в таблицах, оптимизированных для памяти.
- Индексы могут быть объявлены как UNIQUE для таблицы, оптимизированной для памяти.
- Все столбцы LOB хранятся вне строки.
- max_lengthax_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
JOIN sys.columns AS c
ON m.object_id = c.object_id
AND m.minor_id = c.column_id
WHERE
m.type = 5;
Прочие типы данных
Другие типы | Для получения дополнительных сведений |
---|---|
табличные типы | Основные сведения о табличных переменных, оптимизированных для памяти |
См. также
Поддержка Transact-SQL для выполняющейся в памяти OLTP
Реализация SQL_VARIANT в таблице, оптимизированной для памяти
Размер строки и таблицы для таблиц, оптимизированных для памяти