Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Base de données SQL dans Microsoft Fabric
La procédure suivante vous permet d'obtenir une estimation de la quantité d'espace nécessaire au stockage de données dans un segment de mémoire.
Déterminez le nombre de lignes que contiendra la table :
- Num_Rows = nombre de lignes dans la table
Spécifiez le nombre de colonnes de longueur fixe et variable et calculez l'espace nécessaire à leur stockage :
Calculez l'espace que chacun de ces groupes de colonnes occupe dans la ligne de données. La taille d'une colonne dépend du type des données et de la longueur spécifiée.
- Num_Cols = nombre total de colonnes (de longueur fixe et de longueur variable)
- Fixed_Data_Size = taille totale, en octets, de toutes les colonnes de longueur fixe
- Num_Variable_Cols = nombre de colonnes de longueur variable
- Max_Var_Size = taille maximale en octets de toutes les colonnes de longueur variable
Une partie de la ligne, connue sous le nom de bitmap NULL, est réservée pour gérer la possibilité de valeur NULL de la colonne. Calculez sa taille :
- Null_Bitmap = 2 + ((Num_Cols + 7) / 8)
Seule la partie entière de l'expression doit être utilisée. Omettez le reste.
Calculez la taille des données de longueur variable :
En présence de colonnes de longueur variable dans la table, déterminez l'espace utilisé pour stocker les colonnes dans la ligne au moyen de la formule suivante :
- Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size
Les octets ajoutés à Max_Var_Size servent à assurer le suivi de chaque colonne de longueur variable. Il est supposé, lorsque vous utilisez cette formule, que toutes les colonnes de longueur variable sont entièrement remplies. Si vous pensez qu’un pourcentage inférieur de l’espace de stockage des colonnes de longueur variable sera utilisé, vous pouvez ajuster la valeur de Max_Var_Size en fonction de ce pourcentage pour obtenir une estimation plus précise de la taille globale de la table.
Note
Vous pouvez combiner des colonnes varchar, nvarchar, varbinaryou sql_variant qui provoquent le dépassement de la largeur totale de la table définie au-delà de 8 060 octets. La longueur de chacune de ces colonnes doit toujours être inférieure à la limite de 8 000 octets pour une colonne varchar, nvarchar, varbinary ou sql_variant. Toutefois, leurs largeurs combinées peuvent dépasser la limite de 8 060 octets dans une table.
En l’absence de toute colonne de longueur variable, attribuez la valeur 0 à Variable_Data_Size.
Calculez la taille totale de la ligne :
- = Row_Size + Fixed_Data_Size + Variable_Data_SizeNull_Bitmap + 4
La valeur 4 dans la formule correspond à l'espace réservé à l'en-tête de la ligne de données.
Calculez le nombre de lignes par page (8 096 octets gratuits par page) :
- Rows_Per_Page = 8096 / (Row_Size + 2)
Étant donné que les lignes ne s’étendent pas sur les pages, le nombre de lignes par page doit être arrondi à la ligne entière la plus proche. La valeur 2 dans la formule correspond à l'entrée de la ligne dans le tableau d'emplacements de la page.
Calculez ensuite le nombre de pages de données requises pour le stockage de toutes les lignes :
- Nombre_de_Pages = Nombre_de_Lignes / Lignes_par_Page
Le nombre de pages de données estimé doit être arrondi à la page entière la plus proche.
Calculez la quantité d’espace nécessaire pour stocker les données dans le tas (8 192 octets totaux par page) :
Taille du segment de mémoire (octets) = 8192 x Num_Pages
Ce calcul ne prend pas en compte les conditions suivantes :
Partitionnement : la surcharge d’espace du partitionnement est minimale, mais complexe à calculer. Il n’est pas important d’inclure cela.
Pages d’allocation : il existe au moins une page IAM utilisée pour suivre les pages allouées à un tas, mais la surcharge d’espace est minimale et il n’existe pas d’algorithme pour calculer de manière déterministe exactement le nombre de pages IAM utilisées.
Valeurs d’objets volumineux (LOB) : l’algorithme pour déterminer exactement la quantité d’espace qui sera utilisée pour stocker les types de données LOB varchar(max), varbinary(max), nvarchar(max), text, ntextxml et image est complexe. Il suffit d'ajouter simplement la taille moyenne des valeurs LOB attendues et de l'ajouter à la taille totale du tas.
Compression : vous ne pouvez pas précalculer la taille d’un tas compressé.
Colonnes éparses : pour plus d’informations sur les besoins en espace des colonnes éparses, consultez Utiliser des colonnes éparses.