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 :

select pour obtenir la taille de remplissage d'une bdd


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut select pour obtenir la taille de remplissage d'une bdd
    Bonjour ,
    je voudrais avoir le select me donnant la taille occupée (pas la taille totale) dans un fichier de data
    et la requete m'indiquant egalement la taiile occupée dans le fichier log

    sp_spaceused ne le donne pas

    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    et sp_helpdb ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    non, sp_helpdb ne donne pas l'info recherchée, ce que je veux , c'est avoir les renseignements donnés dans l'affichage par sql entreprise manager pour une base selectionnée , affichage, taskpad, space allocated

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Oui, sp_helpdb retourne l'info si vous spécifiez en 1er paramètre la base.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Non désolé,cela ce donne pas ce que j'attend ,
    a savoir la place occupée et la place libre à l'interieur du fichier de données d'une base

  6. #6
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sp_helpdb maBase
     
    Name       db_size      owner    dbid   created   status   compatibility_level  
    ====     ======   =====   ===  =====  ====   ============ 
    maBase   339.69 MB	sa	6	mars 21 200	Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=SIMPLE, Version=539, Collation=SQL_Latin1_General_CP1_CI_AS, SQLSortOrder=52, IsTornPageDetectionEnabled, IsAutoCreateStatistics, IsAutoUpdateStatistics	80
     
    Name   Fileid   filename   filegroup   size   maxsize   growth   usage
    ==== ==== ======= ====== === ======= ==== =====
    MaBase_Data   1   D:\SQL_Data\MaBase\Data\MaBase.mdf   PRIMARY	307200 KB   Unlimited   0%   data only
    MaBase_Log   2   D:\SQL_Data\MaBase\LOG\MaBase_log.ldf   NULL	40640 KB   131072 KB   8192 KB   log only
    Donc, place utilisée = 307 M de data et 40 M de log
    Place libre = tant que j'ai du disque (autoextend) pour les data, et 131 M pour le log

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Dans ton exemple sur les 307 mb alloués , peut-etre n'y a t'il que 200 d'occupé et 107 Mb de libre par exemple, c'est ce que je recherche, afin de suivre précisemment l'évolution de mes bases et pouvoir faire des graphes

  8. #8
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    A associer à l'alloué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select sum(reserved)/128 RESERVER_MO, sum(used)/128 USED_MO 
    from sysindexes
    Attention aux unités : ce sont des pages de 8K et pas des Mo (d'où ma division par 128).

  9. #9
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    hop, je m'incruste dans la conversation, mais si tu veux rajouter a ca la taille de log aloue et utilise ?

    en te remerciant pour ton aide

  10. #10
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    bon, ben voila le code definitif pour ceux que ca interesserait :

    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
    DECLARE @dbname VARCHAR(64)
     
    CREATE TABLE #tmplg4 
    ( 
    	DBName VARCHAR(64), 
    	DATA_RESERVED_MO REAL, 
    	DATA_USED_MO REAL, 
    	DATA_FREE_MO REAL, 
    	LOG_RESERVED_MO REAL, 
    	LOG_USED_MO REAL, 
    	LOG_FREE_MO REAL
    )
     
    DECLARE c1 CURSOR FOR 
    SELECT name FROM master..sysdatabases WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb')
     
    OPEN c1
     
    FETCH NEXT FROM c1 INTO @dbname
    WHILE @@fetch_status <> -1
    BEGIN
     
    	CREATE TABLE #tmplg1 ( Data_Reserved_MO REAL, Data_Used_MO REAL, DATA_FREE_MO REAL )
    	CREATE TABLE #tmplg2 ( DBName VARCHAR(64), LogSize REAL, LogSpaceused REAL, Status INT )
    	CREATE TABLE #tmplg3 ( DBName VARCHAR(64), LOG_RESERVED_MO REAL, LOG_USED_MO REAL, LOG_FREE_MO REAL )
     
    	INSERT INTO #tmplg1 EXEC ('SELECT SUM(sys1.reserved)/128, SUM(sys1.used)/128, (SUM(sys1.reserved)/128)-(SUM(sys1.used)/128) ' + 'FROM '+ @dbname + '..sysindexes sys1')
     
    	INSERT INTO #tmplg2 EXEC ('DBCC sqlperf(logspace)')
     
    	INSERT INTO #tmplg3 EXEC ('SELECT dbname, logsize/8, logspaceused*LogSize/800, logsize/8-(logspaceused*LogSize/800) FROM #tmplg2 WHERE dbname = ''' + @dbName + '''')
     
    	INSERT INTO #tmplg4 SELECT tmp2.dbname, tmp1.data_reserved_MO, tmp1.DATA_USED_MO, tmp1.DATA_FREE_MO, tmp2.LOG_RESERVED_MO, tmp2.LOG_USED_MO, tmp2.LOG_FREE_MO FROM #tmplg1 tmp1, #tmplg3 tmp2
     
    	DROP TABLE #tmplg1
    	DROP TABLE #tmplg2
    	DROP TABLE #tmplg3
     
    	FETCH NEXT FROM c1 INTO @dbname
    END
     
    SELECT * FROM #tmplg4
     
    DROP TABLE #tmplg4
    CLOSE c1
    DEALLOCATE c1

Discussions similaires

  1. Utilitaire pour obtenir la taille des objets Access
    Par =JBO= dans le forum Contribuez
    Réponses: 14
    Dernier message: 19/08/2023, 19h22
  2. fonction pour obtenir le nombre d'enregistrement d'une table avec php
    Par chris0938 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/07/2010, 14h11
  3. Requête SQL pour obtenir les intitulés des champs d'une table
    Par Zakapatul dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/12/2008, 09h51
  4. Obtenir la taille et position d'une popup
    Par laurent_h dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/06/2006, 11h42

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