Administration d’un SGBD Relationnel
Volumétrie des tables et des index
ALSI / S25 SGBD R Support de Cours 2TSIG D:\769910567.doc
3.2 Estimation de la taille d’une table pour SQLSERVER 6.5
3.2.1 Remarques préliminaires
Les calculs diffèrent un peu selon que les champs sont de longueurs fixes (longueur fixe et défini avec
l’option NOT NULL) ou de longueur variable (longueur variable ou longueur fixe et défini avec l'option NULL).
Dans le second cas, il faut faire les calculs avec la longueur moyenne du champ et la formule de calcul tient compte
du nombre de champs de longueur variable dans une ligne.
On simplifie ici, en prenant la taille maxi de chaque colonne et en estimant des champs de longueur fixe.
On prend le cas particulier d’un index ordonné : les feuilles d’un index ordonné sont les pages de données
elles-même. Dans le cas d’un index non ordonné, il y a un niveau d’indexation supplémentaire et le nombre d’octets
réservé pour les servitudes logicielles diffère un peu.
3.2.2 Etape 1 : Calcul de la taille d’une ligne de données
2 + (Somme des octets de toutes les colonnes) = Taille d’une ligne de données
La valeur 2 correspond aux servitudes logicielles que SQL Server mobilise pour le stockage interne.
3.2.3 Etape 2 : Calcul du nombre de pages de données
Pour calculer le nombre de pages de données:
8060 / (Taille de la ligne de données) = Nombre de lignes de données par page
(Nombre de lignes) / (Nombre de lignes de données par page) = Nombre de pages de données
requises.
3.2.4 Etape 3 : Calcul de la taille des lignes d'un index ordonné
5 + (Somme des octets des clés d'index )) = Taille d’une ligne d’index ordonné
La valeur 5 correspond aux servitudes logicielles que SQL Server mobilise pour le stockage interne.
3.2.5 Etape 4 : Calcul du nombre de pages d'un index ordonné
Après avoir calculé la taille d'une ligne de l'index ordonné, vous pouvez calculer le nombre de pages re-
quises par celui-ci.
(8060 / Taille d'une ligne de l'index ordonné) 2 = Nombre de lignes d'index ordonné par page
(Nombre de pages de données) / (Nombre de lignes d'index ordonné par page)
= Nombre de pages d'index au niveau 0
Si le résultat obtenu est supérieur à 1, répétez les étapes de division en utilisant chaque fois le quotient ob-
tenu précédemment comme nouveau dividende, jusqu'à ce que vous obteniez un résultat égal à 1. Dès que vous aurez
obtenu un quotient égal à 1, vous aurez atteint le niveau racine de l'index.
(Nombre de pages d'index au dernier niveau) / (Nombre de lignes d'index ordonné par page) =
Nombre de pages d'index au niveau suivant
3.2.6 Etape 5 : Calcul du nombre total de pages
Pour calculer le nombre total de pages de données:
(Nombre de pages de données) + (Nombre de pages d'index au niveau 0) + (Nombre de pages
d'index au niveau suivant) + (Nombre de pages d'index au niveau suivant) [...] = Nombre total de pages de
données
3.3 Calcul de la taille d'une table de 9 millions de lignes dotée d'un index ordonné
L'exemple suivant illustre comment calculer la taille (en nombre de pages de 8 Ko) des données et de
l'index ordonné d'une table présentant les caractéristiques suivantes:
9 millions de lignes
Somme des octets des colonnes = 158