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 base comme dans propriete base


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 20
    Points
    20
    Par défaut taille base comme dans propriete base
    Bonjour,

    Je cherche a trouver par script les données, de taille, affichées dans les propriete d'une base :
    j'ai trouver pour la taille : dans sysfiles
    mais je ne trouve pas pour l'espace dispo
    j'ai essayé avec la table sysindexes mais je ne retombe pas sur la meme valeur.

    Merci de me dire comment retrouver la valeur exacte affichée.

    Cdt,
    SC

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    essaies çà

    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
    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),
    	Lignes = convert(char(11), rows),
    	RéservéKB = ltrim(str(reserved * d.low / 1024.,15,0) + ' ' + 'KB'),
    	DonnéesKB = ltrim(str(data * d.low / 1024.,15,0) + ' ' + 'KB'),
    	TailleIndexKB = ltrim(str(indexp * d.low / 1024.,15,0) + ' ' + 'KB'),
    	LibreKB = 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

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 23
    Points : 20
    Points
    20
    Par défaut pas encore ca !!!
    Hello,
    merci pour cette reponse mais j'avais deja vu cette reponse et la requete que tu me donne indique uniquement le taille de chaque table "UTILISATEUR" et pas la taille de la base de données.
    Sachant que ce que je veux c'est surtout le calcul pour l'espace disponible dans les fichiers mdf et ldf.

    Merci quand meme

Discussions similaires

  1. [AC-2003] Import depuis une base A dans une Base B
    Par ted the Ors dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/01/2010, 20h59
  2. Réponses: 2
    Dernier message: 07/09/2009, 22h20
  3. Réponses: 2
    Dernier message: 06/08/2008, 18h50
  4. Créer une vue dans une base vers une autre base ?
    Par guidav dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/02/2008, 16h43
  5. Taille des vues dans la base de donnée
    Par Andry dans le forum Débuter
    Réponses: 5
    Dernier message: 21/01/2005, 22h06

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