Comment savoir quelles tables occupent le plus d'espace dans une base de données SQL Server 2005?
Je suis sûr qu'il existe une procédure stockée par le système qui affiche ces informations.
J'ai une base de données TEST qui est passée de 1 To à 23 To. Nous effectuons actuellement de nombreux tests de conversion client dans la base de données, ce qui implique d'exécuter plusieurs fois la même procédure stockée de conversion. Il supprime ce qui, j'en suis sûr, augmente le journal des transactions. Mais cela m'a fait réfléchir à poser cette question.
Info
le gros problème est la table dbo.Download, elle crée un stockage massif qui n'est en fait pas nécessaire, j'avais 3 Go avant de le tronquer, puis 52 Mo;)
sql-server
sql-server-2005
Gerhard Weiss
la source
la source
Réponses:
Essayez ce script - il listera le nombre de lignes et l'espace utilisé par les lignes de données (et l'espace total utilisé) pour toutes les tables de votre base de données:
la source
SELECT @@VERSION
pour savoir) Quel est le niveau de compatibilité de votre base de données?Utiliser sp_spacedUsed
Exec sp_spaceused N'YourTableName'
Ou si vous souhaitez exécuter le
sp_spaceused
pour chaque table de votre base de données, vous pouvez utiliser ce SQL:Le SQL ci-dessus est d' ici
la source
exec sp_msforeachtable 'exec sp_spaceused N''?'''
sp_msforeachtable
existe depuis au moins SQl Server 2000sp_msforeachtable 'sp_spaceused [?]'
si vous le souhaitez. Vérifié à nouveau à SQL2000.Le commentaire de Rossisdead a répondu à cette question le mieux pour moi, j'aimerais qu'il ne soit pas enterré dans un commentaire. Cela sera utile pour les personnes comme moi qui n'essaient pas de créer un script de la solution (l'OP n'a pas demandé d'extrait de code)
la source
Merci à @marc_s pour la réponse. J'avais besoin de connaître les données par rapport à l'espace d'index, alors je suis allé de l'avant et j'ai développé la requête pour l'inclure.
la source