Spécifications de capacité maximale pour SQL Server

S'applique à : SQL Server

Cet article décrit la taille maximale et le nombre maximal des différents objets définis dans SQL Server 2016 (13.x) et ultérieur. Si vous voulez voir les limites des différentes éditions, consultez Limites de capacité de calcul par édition de SQL Server.

Pour SQL Server 2014 (12.x), consultez Spécifications des capacités maximales pour SQL Server 2014.

Objets Moteur de base de données

Valeurs maximales des différents objets définis dans les bases de données SQL Server ou référencés dans les instructions Transact-SQL.

SQL Server Moteur de base de données objet Valeurs maximales pour SQL Server (64 bits) Informations supplémentaires
Taille du lot 65 536 * (taille de paquet réseau) La taille des paquets réseau représente la taille des paquets TDS (Tabular Data Stream) utilisés pour la communication entre le moteur de base de données relationnel et des applications. La taille des paquets par défaut est de 4 Ko. La taille des paquets du réseau contrôle cette option de configuration.
Longueur en octets d’une chaîne contenant des instructions Transact-SQL (taille de lot) 65 536 * (taille de paquet réseau) La taille des paquets réseau représente la taille des paquets TDS (Tabular Data Stream) utilisés pour la communication entre le moteur de base de données relationnel et des applications. La taille par défaut s'élève à 4 Ko ; elle est contrôlée par l'option de configuration Taille du paquet réseau.
Octets par colonne de chaîne courte 8,000
Octets par GROUP BY, ORDER BY 8,060
Octets par clé d’index 900 octets pour un index cluster. 1 700 octets pour un index non cluster. Pour SQL Server 2014 (12.x) et antérieur, toutes les versions prenaient en charge 900 octets pour tous les types d’index. Le nombre maximal d’octets dans une clé d’index cluster ne peut pas dépasser 900 . Pour une clé d’index non cluster, la valeur maximale est de 1 700 octets.

Vous pouvez définir une clé à l’aide de colonnes de longueur variable dont les tailles maximales, additionnées, dépasse la limite. Toutefois, la taille combinée des données de ces colonnes ne peut jamais dépasser la limite.
Dans un index non cluster, vous pouvez inclure des colonnes non-clés supplémentaires. Elles n’entrent pas en compte pour la limite de taille de la clé. Les colonnes non-clés peuvent améliorer les performances de certaines requêtes.
Octets par clé d’index pour les tables optimisées en mémoire 2 500 octets pour un index non cluster. Aucune limite pour un index de hachage, tant que toutes les clés d’index s’ajustent sur la ligne. Sur une table optimisée en mémoire, un index non cluster ne peut pas avoir de colonnes clés dont la taille maximale déclarée dépasse 2 500 octets. Peu importe que la taille des données réelles dans les colonnes clés soit inférieure aux tailles maximales déclarées.

Pour une clé d’index de hachage, il n’existe pas de limite de taille.
Pour les index sur les tables à mémoire optimisée, il n’existe pas de concept de colonnes incluses, car tous les index couvrent par nature toutes les colonnes.
Pour une table optimisée en mémoire, même si la taille de ligne est de 8 060 octets, certaines colonnes de longueur variable peuvent être stockées physiquement en dehors de ces 8 060 octets. Cependant, les tailles maximales déclarées de toutes les colonnes clés pour tous les index sur une table, plus les éventuelles colonnes de longueur fixe supplémentaires dans la table, doivent tenir dans les 8 060 octets.
Octets par clé étrangère 900
Octets par clé primaire 900
Octets par ligne 8,060 SQL Server prend en charge le stockage avec dépassement de ligne, qui permet d’envoyer hors ligne les colonnes de longueur variable. Seule une racine de 24 octets est stockée dans l’enregistrement principal pour les colonnes de longueur variable envoyées hors ligne. Pour plus d’informations, consultez Prise en charge des lignes de grande taille.
Octets par ligne dans les tables optimisées en mémoire 8,060 Les tables optimisées en mémoire sur SQL Server 2016 (13.x) et ultérieur prennent en charge le stockage hors ligne. Les colonnes de longueur variable sont envoyées hors ligne si la taille maximale de toutes les colonnes dans la table dépasse 8 060 octets. Cette action est une décision prise au moment de la compilation. Seule une référence de huit octets est stockée dans la ligne pour les colonnes stockées hors ligne. Pour plus d’informations, consultez Taille de la table et des lignes dans les tables optimisées en mémoire.
Octets dans le texte source d'une procédure stockée Taille de lot inférieure ou 250 Mo
Octets par colonne varchar(max), varbinary(max), xml, text ou image 2^31-1
Caractères par colonne ntext ou nvarchar(max) 2^30-1
Index cluster par table 1
Colonnes dans GROUP BY, ORDER BY Limité uniquement par le nombre d'octets
Colonnes ou expressions dans une instruction GROUP BY WITH CUBE ou GROUP BY WITH ROLLUP 10
Colonnes par clé d’index 32 Si la table contient au moins un index XML, la clé de clustering de la table d’utilisateur est limitée à 31 colonnes, car la colonne XML est ajoutée à la clé de clustering du principal index XML. Vous pouvez inclure des colonnes non-clés dans un index non cluster, pour éviter la limitation à un maximum de 32 colonnes clés. Pour plus d’informations, consultez Créer des index avec colonnes incluses.
Colonnes par clé étrangère ou par clé primaire 32
Colonnes par instruction INSERT 4 096
Colonnes par instruction SELECT 4 096
Colonnes par table 1 024 Les tables qui incluent des jeux de colonnes éparses incluent jusqu’à 30 000 colonnes. Consultez Jeux de colonnes éparses.
Colonnes par instruction UPDATE 4 096 Des limites différentes s’appliquent aux jeux de colonnes éparses.
Colonnes par vue 1 024
Connexions par client Valeur maximale des connexions configurées
Taille de la base de données 524 272 téraoctets
Bases de données par instance de SQL Server 32 767
Groupes de fichiers par base de données 32 767
Groupes de fichiers par base de données pour les données optimisées en mémoire 1
Fichiers par base de données 32 767
Taille de fichier (données) 16 téraoctets
Taille de fichier (journal) 2 téraoctets
Fichiers de données pour les données optimisées en mémoire par base de données 4 096 dans SQL Server 2014 (12.x). La limite est moins stricte sur SQL Server 2016 (13.x) et ultérieur.
Fichier delta par fichier de données pour les données optimisées en mémoire 1
Références de table de clé étrangère par table Sortantes = 253.
Entrantes = 10 000.
Pour connaître les restrictions associées, consultez Create Foreign Key Relationships.
Longueur d'identificateur (en caractères) 128
Instances par ordinateur 50 instances sur un serveur autonome.

25 instances de cluster de basculement lors de l’utilisation d’un lecteur de cluster partagé comme stockage.
50 instances de cluster de basculement avec des partages de fichiers SMB comme option de stockage.
Index par table optimisée en mémoire 999 à compter de SQL Server 2017 (14.x) et dans Azure SQL Database.

8 dans SQL Server 2016 (13.x) et SQL Server 2014 (12.x).
Verrous par connexion Verrous maximaux par serveur
Verrous par instance de SQL Server Limité uniquement par la mémoire Cette valeur s’applique à l’allocation de verrouillage statique. Les verrous dynamiques sont uniquement limités par la mémoire.
Niveaux d’imbrication des procédures stockées 32 Si une procédure stockée accède à plus de 64 bases de données ou à plus de deux bases de données en entrelacement, vous recevez une erreur.
Sous-requêtes imbriquées 32
Transactions imbriquées 4,294,967,296
Niveaux de déclencheurs imbriqués 32
Index non cluster par table 999
Nombre d’expressions distinctes dans la clause GROUP BY quand l’un des éléments suivants est présent : CUBE, ROLLUP, GROUPING SETS, WITH CUBE, WITH ROLLUP 32
Nombre de jeux de regroupement générés par les opérateurs dans la clause GROUP BY 4 096
Paramètres par procédure stockée 2,100
Paramètres par fonction définie par l'utilisateur 2,100
REFERENCES par table 253
Lignes par table Limité par le stockage disponible
Tables par base de données Limité par le nombre total d’objets dans une base de données Les objets comprennent les tables, les vues, les procédures stockées, les fonctions définies par l’utilisateur, les déclencheurs, les règles, les valeurs par défaut et les contraintes. Au total, le nombre de tous les objets d’une base de données ne peut pas dépasser 2 147 483 647.
Partitions par table ou index partitionné 15,000
Statistiques sur les colonnes non indexées 30,000
Tables par instruction SELECT Limité uniquement par les ressources disponibles
Déclencheurs par table Limité par le nombre d'objets dans une base de données Les objets comprennent les tables, les vues, les procédures stockées, les fonctions définies par l’utilisateur, les déclencheurs, les règles, les valeurs par défaut et les contraintes. Au total, le nombre de tous les objets d’une base de données ne peut pas dépasser 2 147 483 647.
Connexions utilisateur 32 767
Index XML 249

SQL Server Objets d’application de la couche Données

Valeurs maximales des différents objets testés dans les applications de la couche Données (DAC) SQL Server.

SQL Server Object DAC Valeurs maximales pour SQL Server (64 bits) Informations supplémentaires
Bases de données par DAC 1
Objets par DAC Limité par le nombre d'objets dans une base de données ou la mémoire disponible. Les types d’objets inclus dans la limite sont les utilisateurs, les tables, les vues, les procédures stockées, les fonctions définies par l’utilisateur, les types de données définis par l’utilisateur, les rôles de base de données, les schémas et les types de table définis par l’utilisateur.

Objets de réplication

Valeurs maximales des différents objets définis dans la réplication SQL Server.

SQL Server Objet de réplication Valeurs maximales pour SQL Server
(64 bits)
Informations supplémentaires
Articles (publication de fusion) 2 048
Articles (publication d'instantané ou transactionnelle) 32 767
Colonnes dans une table (publication de fusion) 246 Si le suivi de lignes est utilisé pour la détection de conflit (par défaut), la table de base peut inclure 1 024 colonnes au maximum. Toutefois, la publication doit filtrer l’article de manière à ce qu’un maximum de 246 colonnes soient publiées. Si le suivi de colonnes est utilisé, la table de base peut inclure 246 colonnes au maximum.
Colonnes dans une table (publication d’instantané ou transactionnelle SQL Server) 1 000 La table de base peut inclure le nombre maximal de colonnes autorisées dans la base de données de publication SQL Server (1 024), mais les colonnes doivent être filtrées à partir de l’article si elles sont plus nombreuses que le maximum spécifié pour le type de publication.
Colonnes dans une table (publication d’instantané ou transactionnelle Oracle) 995 La table de base peut inclure le nombre maximal de colonnes autorisées dans la base de données de publication SQL Server (1 024), mais les colonnes doivent être filtrées à partir de l’article si elles sont plus nombreuses que le maximum spécifié pour le type de publication.
Octets pour une colonne utilisée dans un filtre de lignes (publication de fusion) 1 024
Octets pour une colonne utilisée dans un filtre de lignes (publication d'instantané ou transactionnelle) 8,000