Existe-t-il un moyen simple de répertorier la taille de chaque table dans chaque base de données sur un serveur MSSQL?
J'ai utilisé une requête sur sys.tables pour obtenir des résultats pour une seule base de données, mais nous avons> 100 bases de données par serveur, donc un moyen d'obtenir les mêmes résultats mais pour toutes les bases de données serait génial.
Actuellement, je dois créer une liste temporaire de bases de données à partir de master.sys.databases, puis itérer dessus avec un curseur, créer une requête et insérer les résultats dans une table temporaire avec EXEC sp_executeSQL @SQLString
.
sql-server
Cylindrique
la source
la source
Réponses:
Si vous vouliez obtenir cela dans tout votre environnement, pour toutes vos bases de données ... et cela ne vous dérange pas d'utiliser PowerShell ... Vous devrez l'exécuter à partir d'une machine sur laquelle SQL Server 2008 Management Studio est au moins installé.
Comme étiqueté les
DataSpaceUsed
sorties d'objet SMO dans "KB", vous pouvez le modifier pour être la mesure de votre choix en y mettant simplement la référence abrégée. Donc , si je voulais « MB »:$_.DataSpaceUsed/1MB
.Dans la fonction
([string[]]$server)
, les crochets "[]" signifient que le paramètre accepte un tableau d'objets. Donc, si vos serveurs sont répertoriés dans un fichier, vous pouvez appeler la fonction comme suit:Je préfère utiliser
Out-GridView
initialement pour revoir la sortie, et elle se copie facilement directement dans Excel pour moi. Vous pouvez également les exporter vers les autres formats pris en charge de PowerShell si vous le souhaitez.Exemple avec capture d'écran, vous pouvez également lister les serveurs:
la source
Extrait de Stack-Overflow: obtenir la taille de toutes les tables de la base de données
la source
J'ai utilisé une fusion des réponses précédentes:
la source
Vous pouvez essayer d'utiliser
sp_msforeachdb
cependant quelques avertissements avec cela.Cela étant dit, je l'utilise avec succès depuis plusieurs années maintenant.
Fondamentalement, il fait un curseur et un remplacement sur le? avec le nom de la base de données.
Vous pouvez également essayer la version de remplacement d'Aaron Bertrand. Je ne l'ai pas essayé moi-même mais c'est censé être mieux.
la source
Ce qui suit résoudra votre question:
la source