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

Administration Oracle Discussion :

Pb de calcul de taille TBS


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 55
    Par défaut Pb de calcul de taille TBS
    Bonjour,

    Je voulais trouver une explication pour l'incoherence suivante.
    J'execute la commande suivate sur une base Oracle 9i:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_segments group by tablespace_name;
     
    TABLESPACE_NAME                SUM(BYTES)/1024/1024
    ------------------------------ --------------------
    SD_DATA                                   2744899
    SD_IDX                                      23323
    SYSTEM                                   137,171875
    TOOLS                                     196,65625
    UNDOTBS                                   88,171875
    Si ma comprehension est bonne, d'apres ce calcul, j'ai 2 Terra dans le tablespace SD_DATA.

    Maintenant j'execute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL>select sum(bytes)/1024/1024 from dba_data_files where tablespace_name='SD_DATA';
     
    SUM(BYTES)/1024/1024
    --------------------
                  150000
    Ce qui veut dire que la somme de la taille de tous les fichiers dans le tablespace SD_DATA est 150 Giga => Ce qui est vrai: verifié au niveau de l'OS

    Comment ce TBS peut avoir alloué 2T des données quand la somme de tous les fichiers qui le compose ne depasse pas 150G ?

    Je me trompe ou ?

  2. #2
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut
    bonjour,

    il faut que tu regardes la taille allouée à tes datafiles.

    Par exemple si tu crées un datafile avec un maxsize de 5G, et qu'il est rempli seulement à avec 2G, tu auras une différence entre la taille dans dba_segment et dba_data_files.

    Si je me trompe n'hésitez pas à me reprendre.

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 59
    Par défaut
    Bonjour

    Est ce que vous pouvez exécuté cette commande pour voir l'espace libre :
    dba_data_files=dba_segments+dba_free_space

    select sum(bytes)/1024/1024 FROM dba_free_space WHERE tablespace_name='SD_DATA';

    Pourquoi vous avez utilisé GROUP BY vu que t'as qu'une tablespace SD_DATA

    J'attend ta réponse

    Je vous remerci

  4. #4
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 55
    Par défaut
    Merci pour vos réponses

    Au fait la taille des datafiles est 150G. Cette valeure est done par dba_data_files. Aussi cette valeure est verifie au niveau de l'OS (J'ai fait un ls-l su l'ensemble des fichiers du tablespace).

    Par contre c'est dba_segments qui donne une fausse information.
    dba_segments donne 2T des donnees.

    Pourquoi vous avez utilisé GROUP BY vu que t'as qu'une tablespace SD_DATA
    C'est vrai il y a pas besoin de GROUP BY mais ca ne cange rien au résultat final.

    Voila en bref ce que j'ai:
    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
    select sum(bytes)/1024/1024 FROM dba_free_space WHERE tablespace_name='SD_DATA';
     
    SUM(BYTES)/1024/1024
    --------------------
                   38724
     
     select sum(bytes)/1024/1024 FROM dba_segments WHERE tablespace_name='SD_DATA';
     
    SUM(BYTES)/1024/1024
    --------------------
                 2744899
     
    select sum(bytes)/1024/1024 FROM dba_data_files WHERE tablespace_name='SD_DATA';
     
    SUM(BYTES)/1024/1024
    --------------------
                  150000
    L'egalité dba_data_files=dba_segments + dba_free_space n'est visiblement pas respecté.

  5. #5
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut
    Bonjour,

    As tu vérifié si tu avais des datafiles à auto extend à OFF.

  6. #6
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 55
    Par défaut
    Voila mes datafiles. Il y a 75 tous identiques.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SQL> select count(*) from dba_data_files where tablespace_name='SD_DATA';
     
      COUNT(*)
    ----------
            75
    SQL> select * from dba_data_files where tablespace_name='SD_DATA';
     
       FILE_ID TABLESPACE_NAME       BYTES     BLOCKS STATUS    RELATIVE_FNO AUTOEXTENSIBLE   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
    ---------- ---------------- ---------- ---------- --------- ------------ -------------- ---------- ---------- ------------ ---------- -----------
             4 SD_DATA          2097152000     256000 AVAILABLE            4 YES            2097152000     256000          128 2096103424      255872

    MAXBYTES = 2097152000 => 2G par fichier * 75 = 150G

  7. #7
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par nax71 Voir le message
    Je me trompe ou ?
    A priori, nulle part...

    Bonjour,

    Il y a effectivement quelque chose de bizarre...

    Est-ce que tu peux voir le détail des segments les plus gros à partir de dba_segments pour cette tablespace ?

    Cordialement,
    Franck.

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

Discussions similaires

  1. Comment calculer la taille d'une base de données ?
    Par say dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 01/04/2011, 16h48
  2. [VB.Net][2.0] Calculer la taille d'un sqlDataReader
    Par druidev dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/11/2006, 15h00
  3. Réponses: 9
    Dernier message: 26/08/2006, 19h35
  4. Calculer la taille d'un texte dans un DC
    Par vanitom dans le forum MFC
    Réponses: 9
    Dernier message: 28/10/2005, 15h32
  5. Calculer la taille d'une image
    Par bigourson dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/09/2005, 11h22

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