Taille de toutes les tables d’une base de données.

Cette requête permets d’extraire la liste de toutes les tables d’une base de données SQL avec les informations suivantes :

  • Nombre de lignes.
  • Taille des données en Mb.
  • Taille totale (données et indexes) en Mb.

select TableName = convert(varchar(100),sysobjects.name)
    ,TotalRows = max(sysindexes.rows)
    ,MbData = (sum(convert(real,sysindexes.dpages)) * spt_values.low / 1048576)
    ,MbTotal = (sum(convert(real,sysindexes.used)) * spt_values.low / 1048576 )
from sysobjects join sysindexes on sysobjects.id = sysindexes.id
    join master.dbo.spt_values spt_values on spt_values.number = 1 and spt_values.type = 'E'
where sysobjects.type = 'U'
    and indid in (0,1,255)
group by sysobjects.name, spt_values.low
order by 4 desc

Voici un exemple de résultat sur une base :

Requête 'All Table Size'

Requête ‘All Table Size’

Leave a Reply