[SQL 2005] - Taille et volumétrie de plusieurs tables.

Le
Houdini
Bonjour à toutes et à tous,

J'ai une base de données qui contient 388 tables. Je cherche à afficher la
taille physique et le nombre d'enregistrements de chacune des tables. Des
tests de charges ont été effectués sur cette base et certaines ont grossi.

la base augmente régulièrement mais trop à mon goût (normalement, elle
devrait faire une centaine de Mo, alors que j'en suis déjà à 12 Go).
peut-être que les index ont besoin d'être retouchés.

La base est en mode full et les journaux sont sauvegardés

Il existe bien la sp_spaceused (pour une table) mais j'ai quand même 388
tables
Existe-t-il une solution un peu automatique pour avoir ce genre
d'informations ?

Merci d'avance pour votre aide.
Cordialement,
Houdini
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Rv
Le #19134641
Salut,


Une ébauche :

USE [MaBDD]

DECLARE @nomTable varchar(500)
DECLARE @RC int

DECLARE Table_Cursor CURSOR FOR
SELECT name FROM dbo.sysobjects WHERE xtype='U'

OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @nomTable
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC @RC = [dbo].[sp_spaceused] @nomTable, DEFAULT
FETCH NEXT FROM Table_Cursor INTO @nomTable
END

CLOSE Table_Cursor
DEALLOCATE Table_Cursor


A+

Rv


"Houdini" news:
Bonjour à toutes et à tous,

J'ai une base de données qui contient 388 tables. Je cherche à afficher la
taille physique et le nombre d'enregistrements de chacune des tables. Des
tests de charges ont été effectués sur cette base et certaines ont grossi.

la base augmente régulièrement mais trop à mon goût (normalement, elle
devrait faire une centaine de Mo, alors que j'en suis déjà à 12 Go).
peut-être que les index ont besoin d'être retouchés.

La base est en mode full et les journaux sont sauvegardés

Il existe bien la sp_spaceused (pour une table) mais j'ai quand même 388
tables
Existe-t-il une solution un peu automatique pour avoir ce genre
d'informations ?

Merci d'avance pour votre aide.
Cordialement,
Houdini


Fred BROUARD
Le #19142761
WITH
I AS
(
SELECT *
FROM sys.dm_db_index_physical_stats(NULL, NULL, NULL, NULL, NULL)
)
SELECT s.name, t.name, SUM(page_count) / 1024.0 AS KO
FROM sys.tables as t
INNER JOIN sys.schemas as s
ON t.schema_id = s.schema_id
INNER join I
ON t.object_id = I.object_id
GROUP BY s.name, t.name


A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies
*********************** http://www.sqlspot.com *************************


Houdini a écrit :
Bonjour à toutes et à tous,

J'ai une base de données qui contient 388 tables. Je cherche à afficher la
taille physique et le nombre d'enregistrements de chacune des tables. Des
tests de charges ont été effectués sur cette base et certaines ont grossi.

la base augmente régulièrement mais trop à mon goût (normalement, elle
devrait faire une centaine de Mo, alors que j'en suis déjà à 12 Go).
peut-être que les index ont besoin d'être retouchés.

La base est en mode full et les journaux sont sauvegardés

Il existe bien la sp_spaceused (pour une table) mais j'ai quand même 388
tables
Existe-t-il une solution un peu automatique pour avoir ce genre
d'informations ?

Merci d'avance pour votre aide.
Cordialement,
Houdini


Publicité
Poster une réponse
Anonyme