Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dimensionnement espace de stockage

1 réponse
Avatar
Martine LAVIGNE
Y-a-t-il une formule pour calculer l'espace que va prendre=20
une table connaissant:
- le type de ses colonnes (y compris longueur moyenne des=20
varchar),
- le nombre d'enregistrements dans la table.

Je m'int=E9resse =E0 l'espace pour stocker les DATA et =E0=20
l'espace pour stocker les INDEX.

En utilisant la proc=E9dure stock=E9e sp_spaceused 'table' sur=20
des tables d=E9j=E0 peupl=E9es , je n'arrive pas =E0 trouver une=20
formule universelle.
Ex: un tuple de 3 colonnes de type INT n'occupe pas 12=20
octets en moyenne dans l'espace DATA, mais 17 octets!
Ex: 2 tables ayant un index primaire sur 6 colonnes de=20
type INT n'occupent pas du tout le m=EAme espace par tuple=20
dans l'espace INDEX.

1 réponse

Avatar
David Brabant
"Martine LAVIGNE" wrote

Ex: un tuple de 3 colonnes de type INT n'occupe pas 12
octets en moyenne dans l'espace DATA, mais 17 octets!



SQL Server utilise des pages de 8K pour stocker
ses informations. Chaque page a un header de
96 bytes. Le nombre moyen d'octets que vous obtenez
est donc dépendant du nombre de pages réellement
utilisées.

Pour plus d'informations, voir BOL :

Index,
SQLServer Architecture
Database Architecture
Physical Database Architecture
Table and Index Architecture

Un excellent bouquin pour la popote interne de SQL Server
est "Inside SQL Server" de Karen Delaney, Microsoft Press.

--
David