IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

taille de toutes les tables.....


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut taille de toutes les tables.....
    salut,

    EXEC sp_spaceused permet d'avoir la "taille" d'une table, comment dois je faire pour lister toutes les tables avec leur taille d'une base ?

    merci

  2. #2
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 26
    Par défaut
    Si tu veux le faire directement en sql, utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW TABLES FROM ta_base
    Tu peux utiliser la commande SHOW de pleins de façons selons les infos de tu veux avoir

    Plus d'infos sur le site de doc de mysql :
    http://dev.mysql.com/doc/refman/5.0/fr/show.html

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    j'avais oublié de dire que je suis sous sql server...
    il a pas l'air de connaitre show....

  4. #4
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 26

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    en fait, ca liste les noms des tables mais pas leur taille, en fait, j'ai une base avec 100 tables, et j'aimerai savoir lesquelles prennent le plus de place...

  6. #6
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 26
    Par défaut
    Ben j'ai jamais travaillé avec sql server mais tu peux pas faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT table_name nom_table,(EXEC sp_spaceused table_name) taille_table
    FROM information_schema.tables
    WHERE table_type='BASE'
    ?

  7. #7
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Ici c'est le forum MySQL, je déplace

    de poster dans le bon forum.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ce script trouvé sur ce site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    use mabase
    go
    declare @id	int			
    declare @type	character(2) 		
    declare	@pages	int			
    declare @dbname sysname
    declare @dbsize dec(15,0)
    declare @bytesperpage	dec(15,0)
    declare @pagesperMB		dec(15,0)
     
    create table #spt_space
    (
    	objid		int null,
    	rows		int null,
    	reserved	dec(15) null,
    	data		dec(15) null,
    	indexp		dec(15) null,
    	unused		dec(15) null
    )
     
    set nocount on
     
    -- Create a cursor to loop through the user tables
    declare c_tables cursor for
    select	id
    from	sysobjects
    where	xtype = 'U'
     
    open c_tables
     
    fetch next from c_tables
    into @id
     
    while @@fetch_status = 0
    begin
     
    	/* Code from sp_spaceused */
    	insert into #spt_space (objid, reserved)
    		select objid = @id, sum(reserved)
    			from sysindexes
    				where indid in (0, 1, 255)
    					and id = @id
     
    	select @pages = sum(dpages)
    			from sysindexes
    				where indid < 2
    					and id = @id
    	select @pages = @pages + isnull(sum(used), 0)
    		from sysindexes
    			where indid = 255
    				and id = @id
    	update #spt_space
    		set data = @pages
    	where objid = @id
     
     
    	/* index: sum(used) where indid in (0, 1, 255) - data */
    	update #spt_space
    		set indexp = (select sum(used)
    				from sysindexes
    				where indid in (0, 1, 255)
    				and id = @id)
    			    - data
    		where objid = @id
     
    	/* unused: sum(reserved) - sum(used) where indid in (0, 1, 255) */
    	update #spt_space
    		set unused = reserved
    				- (select sum(used)
    					from sysindexes
    						where indid in (0, 1, 255)
    						and id = @id)
    		where objid = @id
     
    	update #spt_space
    		set rows = i.rows
    			from sysindexes i
    				where i.indid < 2
    				and i.id = @id
    				and objid = @id
     
    	fetch next from c_tables
    	into @id
    end
     
    select 	TableName = (select left(name,60) from sysobjects where id = objid),
    	Rows = convert(char(11), rows),
    	ReservedKB = ltrim(str(reserved * d.low / 1024.,15,0) + ' ' + 'KB'),
    	DataKB = ltrim(str(data * d.low / 1024.,15,0) + ' ' + 'KB'),
    	IndexSizeKB = ltrim(str(indexp * d.low / 1024.,15,0) + ' ' + 'KB'),
    	UnusedKB = ltrim(str(unused * d.low / 1024.,15,0) + ' ' + 'KB')
     
    from 	#spt_space, master.dbo.spt_values d
    where 	d.number = 1
    and 	d.type = 'E'
    order by reserved desc 
    drop table #spt_space
    close c_tables
    deallocate c_tables

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    ca marche ! merci !!
    j'aurais jamais trouvé une telle requete ! lol , meme en m'adonnant a la boisson....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Taille occupée de toutes les tables de chaque BDD
    Par Portekoi dans le forum Développement
    Réponses: 6
    Dernier message: 20/01/2010, 03h20
  2. [SQL Server]La liste de toutes les tables
    Par Husqvarna dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/09/2008, 16h21
  3. Réponses: 6
    Dernier message: 25/03/2008, 10h39
  4. Réponses: 1
    Dernier message: 11/09/2006, 10h16
  5. Sélection de toute les tables d'une base
    Par lord_paco dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/07/2003, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo