記憶體中 OLTP 支援的資料類型
適用於:SQL Server、Azure SQL 資料庫 和 Azure SQL 受控執行個體。
本文章列出記憶體中 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 開始:
每個記憶體最佳化資料表也可以擁有幾個
nvarchar(4000)
之類的長資料行,即使其長度可能會超過 8060 個位元組的實體資料列大小。記憶體最佳化資料表可以擁有如
varchar(max)
之資料類型的最大長度字串和二進位資料行。
識別 LOB 及其他 off-row 資料行
從 SQL Server 2016 開始,記憶體最佳化資料表支援非資料列的資料行,可讓單一資料表的資料列超過 8060 個位元組。 下列 Transact-SQL SELECT 陳述式會報告記憶體最佳化資料表的所有 off-row 資料行。 請注意:
- 所有索引鍵資料行都會 in-row 儲存。
- 非唯一索引鍵現在可以在記憶體最佳化資料表上包含可為 Null 的資料行。
- 索引可以在記憶體最佳化資料表上宣告為 UNIQUE。
- 所有 LOB 資料行都會 off-row 儲存。
- 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
JOIN sys.columns AS c
ON m.object_id = c.object_id
AND m.minor_id = c.column_id
WHERE
m.type = 5;
其他資料類型
其他類型 | 取得詳細資訊 |
---|---|
資料表類型 | 記憶體最佳化資料表變數 |
另請參閱
記憶體內部 OLTP 的 Transact-SQL 支援
在記憶體最佳化資料表中實作 SQL_VARIANT
記憶體最佳化資料表中的資料表和資料列大小