Tipos de datos admitidos para OLTP en memoriaSupported Data Types for In-Memory OLTP
Se aplica a:Applies to: SQL ServerSQL Server (todas las versiones admitidas)
SQL ServerSQL Server (all supported versions)
Azure SQL DatabaseAzure SQL Database
Azure SQL DatabaseAzure SQL Database
SQL ServerSQL Server (todas las versiones admitidas)
SQL ServerSQL Server (all supported versions)
Azure SQL DatabaseAzure SQL Database
Azure SQL DatabaseAzure SQL Database
En este artículo se enumeran los tipos de datos que no son compatibles para las características de OLTP en memoria de:This article lists the data types that are unsupported for the In-Memory OLTP features of:
Tablas optimizadas para memoriaMemory-optimized tables
Módulos T-SQL compilados de manera nativaNatively compiled T-SQL modules
Tipos de datos no compatiblesUnsupported Data Types
No se admiten los tipos de datos siguientes:The following data types are not supported:
datetimeoffset (Transact-SQL)datetimeoffset (Transact-SQL)
geography (Transact-SQL)geography (Transact-SQL)
rowversion (Transact-SQL)rowversion (Transact-SQL)
Tipos definidos por el usuarioUser-Defined Types
Tipos de datos admitidos importantesNotable Supported Data Types
La mayoría de los tipos de datos son compatibles con las características de OLTP en memoria.Most data types are supported by the features of In-Memory OLTP. A continuación se indican solo algunos que conviene señalar explícitamente:The following few are worth noting explicitly:
Tipos de cadena y binarioString and Binary Types | Para obtener más informaciónFor more information |
---|---|
binary y varbinary*binary and varbinary* | binary y varbinary (Transact-SQL)binary and varbinary (Transact-SQL) |
char y varchar*char and varchar* | char y varchar (Transact-SQL)char and varchar (Transact-SQL) |
nchar y nvarchar*nchar and nvarchar* | nchar y nvarchar (Transact-SQL)nchar and nvarchar (Transact-SQL) |
A partir de SQL Server 2016, cabe destacar lo siguiente en relación con los tipos de datos binarios y de cadena anteriores:For the preceding string and binary data types, starting with SQL Server 2016:
Cada tabla individual optimizada para memoria puede tener varias columnas long como
nvarchar(4000)
, aunque sus longitudes agregarían más que el tamaño de fila físico de 8060 bytes.An individual memory-optimized table can also have several long columns such asnvarchar(4000)
, even though their lengths would add to more than the physical row size of 8060 bytes.Una tabla optimizada para memoria puede tener columnas de tipos de datos de cadena y binarias de longitud máxima, como
varchar(max)
.A memory-optimized table can have max length string and binary columns of data types such asvarchar(max)
.
Identificar las columnas de LOB y otras columnas no consecutivasIdentify LOBs and other columns that are off-row
A partir de SQL Server 2016, las tablas optimizadas en memoria admiten las columnas de forma no consecutiva, lo que permite que una sola fila de tabla sea mayor que 8060 bytes.Starting with SQL Server 2016, memory-optimized tables support off-row columns, which allow a single table row to be larger than 8060 bytes. La siguiente instrucción Transact-SQL SELECT informa de todas las columnas que no son consecutivas en tablas optimizadas para memoria.The following Transact-SQL SELECT statement reports all columns that are off-row, for memory-optimized tables. Observe lo siguiente:Note that:
- Todas las columnas de clave de índice se almacenan en filas consecutivas.All index key columns are stored in-row.
- Las claves de índice no únicas ahora pueden incluir columnas que aceptan valores NULL en tablas optimizadas para memoria.Nonunique index keys can now include NULLable columns, on memory-optimized tables.
- Los índices se pueden declarar como UNIQUE en una tabla optimizada para memoria.Indexes can be declared as UNIQUE on a memory-optimized table.
- Todas las columnas de LOB se almacenan en filas no consecutivas.All LOB columns are stored off-row.
- Un valor en max_length de -1 indica una columna de objetos grandes (LOB).A max_length of -1 indicates a large object (LOB) column.
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;
Otros tipos de datosOther Data Types
Otros tiposOther Types | Para obtener más informaciónFor more information |
---|---|
Tipos de tablatable types | Variables de tabla con optimización para memoriaMemory-Optimized Table Variables |
Consulte tambiénSee Also
Compatibilidad de Transact-SQL con OLTP en memoria Transact-SQL Support for In-Memory OLTP
Implementar SQL_VARIANT en una tabla con optimización para memoriaImplementing SQL_VARIANT in a Memory-Optimized Table
Tamaño de tabla y fila de tabla optimizada para memoriaTable and Row size in Memory-Optimized Table