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 |