Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/05/2011, 11h14   #1
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Par défaut Taille toutes tables des db

Bonjour a tous,

je voudrais connaitre la table la plus volumineuse d'un de nos bases de données. Je ne connait pas le catalogue des tables SQL SERVER pour faire la requete.
Le resultat que je cherche serais quelque chose comme ça:

Code :
1
2
SELECT table_name, sum(bytes) FROM TABLE
WHERE database_name='nom_de_ma_base' ORDER BY bytes DESC;
table1 15M
table2 100M
table3 etc...

J'ai trouver ceci sur internet mais ça repond pas exactement a ma demande:

Code :
SELECT sum(max_length) FROM sys.COLUMNS WHERE object_id = object_id('MyTable')
Code :
1
2
3
4
5
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name, (size*8)/1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = base_name
D'avance merci
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 11h27   #2
Membre éprouvé
 
Avatar de Nheo_
 
Homme
Étudiant
Inscription : avril 2011
Messages : 317
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 317
Points : 405
Points : 405
Bonjour, d'après ce site :

Code mysql :
1
2
3
4
5
SELECT table_name AS "Tables", round(((data_length + index_length) / 1024 / 1024), 2) AS "Size"
FROM information_schema.tables
WHERE table_schema =  'mysql'
ORDER BY (Size);

Tu remplace mysql par le nom de ta base.

EDIT : Je pensais être dans le sous forum MySQL ... cela risque donc de ne pas marcher , désolé.
Nheo_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 11h38   #3
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Bonjour,

En passant par les vues sys.partitions et sys.allocation_units vous avez toutes les informations nécessaires pour répondre à votre demande :

Code :
1
2
3
4
5
6
7
8
SELECT 
 OBJECT_NAME(P.[object_id]) AS [object_name],
 SUM(AU.used_pages) AS nb_used_pages
FROM sys.partitions AS P
INNER JOIN sys.allocation_units AS AU
 ON P.partition_id = AU.container_id
 GROUP BY P.[object_id]
ORDER BY SUM(AU.used_pages) DESC
++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 11h40   #4
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 158
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 158
Points : 1 617
Points : 1 617
Dans SSMS, click droit sur la DB -> reports -> standard reports -> disk usage by top tables
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 11h50   #5
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Citation:
Envoyé par Ptit_Dje Voir le message
Dans SSMS, click droit sur la DB -> reports -> standard reports -> disk usage by top tables
Aussi mais chez moi ce rapport affiche les top tables qui consomment le plus d'espace disque mais non pas dans un scope d'une base mais dans le scope de l'instance SQL Server mais si j'exécute ce rapport depuis la base de données concernée (qui s'affiche bien dans le rapport).

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 11h57   #6
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Salut a tous
ok la requete donne le resultat esperé.
Super!!
Merci et bon lundi
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h12.


 
 
 
 
Partenaires

Hébergement Web