Types de données pris en charge pour l’OLTP en mémoire
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Cet article répertorie les types de données non pris en charge pour les fonctionnalités OLTP en mémoire des éléments suivants :
Tables optimisées en mémoire
Modules T-SQL compilés en mode natif
Types de données non pris en charge
Les types de données suivants ne sont pas pris en charge.
Types de données remarquables pris en charge
La plupart des types de données sont pris en charge par les fonctionnalités de l’OLTP en mémoire. Les quelques éléments suivants sont particulièrement intéressants :
Types binaires et de chaîne | Pour plus d’informations |
---|---|
binary et varbinary* | binary et varbinary (Transact-SQL) |
char et varchar* | char et varchar (Transact-SQL) |
nchar et nvarchar* | nchar et nvarchar (Transact-SQL) |
Pour les types de données de chaîne et binaires précédents, à partir de SQL Server 2016 :
Une table optimisée en mémoire individuelle peut également présenter plusieurs colonnes longues, telles que
nvarchar(4000)
, dont la longueur peut même dépasser la taille physique des lignes de 8 060 octets.Une table optimisée en mémoire peut afficher des colonnes de type chaîne et binaire de longueur maximale pour les types de données tels que
varchar(max)
.
Identifier des objets LOB et d’autres colonnes qui sont hors ligne
À compter de SQL Server 2016, les tables optimisées en mémoire prennent en charge les colonnes hors ligne, ce qui permet à une ligne de table unique de dépasser 8 060 octets. L’instruction Transact-SQL SELECT suivante signale toutes les colonnes qui sont hors ligne pour des tables optimisées en mémoire. Notez les points suivants :
- Toutes les colonnes de clés d’index sont stockées dans la ligne.
- Les clés d’index non unique peuvent maintenant inclure des colonnes autorisant les valeurs Null sur des tables optimisées en mémoire.
- Les index peuvent être déclarés comme uniques sur une table optimisée en mémoire.
- Toutes les colonnes LOB sont stockées hors ligne.
- Une valeur max_length égale à -1 indique une colonne 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;
Autres types de données
Autres types | Pour plus d’informations |
---|---|
types de tables | Variables de table optimisée en mémoire |
Voir aussi
Prise en charge de Transact-SQL pour OLTP en mémoire
Implémentation de SQL_VARIANT dans un tableau mémoire optimisé
Taille de la table et des lignes dans une table à mémoire optimisée