Comment calculer l'espace occupé par les tables et les index dans SQL Server

Parfois, il est nécessaire de faire un peu de nettoyage, ou au moins comprendre pourquoi notre base de données est si volumineuse.

Voici un script qui permet de localiser table par table, index par index les nombre d'enregistrements et espace disque occupé.

Comment calculer l'espace occupé par les tables et les index dans SQL Server

Comment calculer l'espace occupé par les tables et les index dans SQL Server

 
déclarer @SourceDB varchar(128)
déclarer @sql varchar (128)
créer une table #tables(nom varchar(128))
select @sql = 'insert #tables select TABLE_NAME from INFORMATION_SCHEMA.TABLES où TABLE_TYPE = ”BASE TABLE”'
exec (@sql)



créer une table #SpaceUsed (nom varchar(128), lignes varchar(11), réservé varchar(18),
data varchar (18), index_size varchar (18), varchar inutilisé (18))
déclarer @nom varchar(128)
sélectionnez @nom = "
tant qu'il existe (sélectionnez * dans #tables où nom > @nom)
commencer
sélectionnez @nom = min(nom) à partir de #tables où nom > @nom
select @sql = 'exec ..sp_executesql N”insert #SpaceUsed exec sp_spaceused ' + @name + ””
exec (@sql)
fin
sélectionnez Nom NomeTabella,
cast([lignes] en décimal) righe,
cast(left(reserved,len(reserved)-3) as decimal(18,2))/1024 riservato,
cast(left(data ,len(data)-3) as decimal(18,2))/1024 Dati,
cast(left(index_size ,len(index_size)-3) en décimal (18,2))/1024 Indici,
cast(left(unused ,len(unused)-3) as decimal (18,2))/1024 NonUsato
de #SpaceUsed
commander par riservato desc
déposer la table #tables
déposer la table #SpaceUsed



ajouter un commentaire de Comment calculer l'espace occupé par les tables et les index dans SQL Server
Commentaire envoyé avec succès ! Nous l'examinerons dans les prochaines heures.