Connaître la longueur maximale des lignes des tables, et calculs relatifs

Il est intéressant de connaître la longueur maximale qui peut être stockée par une table pour tenter de prévoir la taille d’une base de données lorsque le système sera arrivé à maturité.
Voici une petite requête pour nous y aider sous SQL Server 2005 et 2008…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-------------------------------
-- Nicolas SOUQUET - 06/10/2009
-------------------------------
SELECT nomTable,
    longueurLigne,
    8060 / longueurLigne AS nbLignesParPage,
    longueurLigne * (8060 / longueurLigne) AS nbMaxOctetsParPage,
    8060 - (longueurLigne * (8060 / longueurLigne)) nbOctetsPerdusParPage,
    (longueurLigne + longueurLigne % 8060) / 8060 AS nbPagesStockeLigne
FROM
(
  SELECT T.name AS nomTable,
      SUM(C.max_length) AS longueurLigne
  FROM sys.tables AS T
  JOIN sys.columns AS C
    ON T.object_id = C.object_id
  JOIN sys.types AS TY
    ON C.user_type_id = TY.user_type_id
  GROUP BY T.name
) AS TMP (nomTable, longueurLigne)

ElSuket

Laisser un commentaire