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

Oracle Discussion :

BLOB et Volumetrie


Sujet :

Oracle

  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut BLOB et Volumetrie
    Bonjour,
    Ma boite va bientot intégrer l'archivage d'un grand nombre de document numérique sous la forme de BLOB.
    J'ai une estimation de la volumetrie en terme de document, mais un BLOB sur disque dur pese-t-il autant que la piece elle même? Ou il y a-t-il un facteur à prévoir?
    Si vous savez comment sont gérés physiquement les BLOB ça pourrait m'aider.
    Merci.

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    le BLOB en lui-même ne prend pas plus ou moins de place, c'est du coté des extents que ça peut éventuellement avoir un impact.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Je pensais aussi naïvement qu'un blob peserait autant que le document original.
    En fait mon DSI me pose la question suivante :
    En termes de documents numérisés sur 5 ans (50 Go par an soit 250 Go sur 5 ans),
    pouvez-vous nous transmettre les besoins en termes de stockage
    (volumétrie) sachant que ce dernier s'effectuera via des bases de
    données Oracle sur une baie SAN (SUN StorEdge 6140 avec des disques durs
    FC) ? D'autre part nous souhaitons savoir si un découpage particulier en
    termes de File Systèmes est préconisé afin d'optimiser la répartition
    des i/o.
    Je suis développeur java et pas dba pour un sou, je vois pas trop quoi leur répondre et notre prestataire non plus.

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Tu peux toujours essayer de stocker 10 BLOB dans une table et comparer la taille de la taille avec celle des 10 Blobs et tu extrapoles... franchement j'vois pas bien quoi répondre non plus

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    C'est ce que j'ai fait, avec Toad, j'arrive à voir la taille de chaque blob, et sa taille est bien identique au fichier original. Mais peut être que ce n'est qu'un "vue" et que physiquement ce n'est plus le cas.
    Tu sais comment estimer la taille d'une table sur disque?

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Bah tu prends la taille de tous les BLOB, t'ajoute un EXTENT pour être sûr et tu devrais pas être loin du compte

    T'as regardé la taille du BLOB mais c'est celle de la table qui est intéressant

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Ben j'ai pas trouvé comment faire en fait :p.

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    regarde dans DBA_SEGMENTS

  9. #9
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Il est difficile d'estimer la taille prise par un LOB quand on ne connaît ni sa taille moyenne (en dehors de la base), ni comment il est utilisé (est-ce qu'il est mis à jour ou non et comment ?). Si les LOBs sont de taille inférieure à 4000 octets ils peuvent être stockés dans les blocs de la table (STORAGE IN ROW), mais par défaut ils ont leurs propres segments (2 par colonne LOB):

    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
    SQL> create table t(x blob);
     
    Table creee.
     
    SQL> select * from cat;
     
    TABLE_NAME                     TABLE_TYPE
    ------------------------------ -----------
    T                              TABLE
     
     
     
    SQL> select segment_name, segment_type from user_segments;
     
    SEGMENT_NAME
    --------------------------------------------------------------------------------
    SEGMENT_TYPE
    ------------------
    SYS_IL0000051633C00001$$
    LOBINDEX
     
    SYS_LOB0000051633C00001$$
    LOBSEGMENT
     
    T
    TABLE
    Les LOBs stockent aussi leur undo dans le tablespace associé aux segments LOBs et non dans le tablespace UNDO comme des colonnes "normales".

    Voir le Application Developer's Guide - Large Objects.

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Merci bcp, la vue user_segments contient en effet pas mal d'info utiles.
    104857600 octets en initial_extent et next_extent, ça vous semble pas enorme?
    Sachant que les fichiers ferait 2Mo en moyenne (et 15% d'écart type).

  11. #11
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Quelle version d'Oracle est utilisée ?
    Comment sont créées les tablespaces ? locally managed ou dictionary managed ?
    A priori avec 50 Go de documents, s'ils vont tous dans la même table et dans les mêmes colonnes et donc dans les mêmes segments, avoir un extent de 100 Mo ne doit pas poser de problème.

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Je fais mes tests avec la version 9, mais la version 10 sera dans l'environnement de production. Donc j'ai utilisé les valeurs par défaut de la base 9i qu'on m'a mis à disposition.
    J'essaie de déterminer les paramètres de création optimum en fonction de ma volumétrie.
    Si je regarde le script créer par Toad quand j'ai créer ma table de BLOB de test ça donne :
    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
    CREATE TABLE BLOBTABLE
    (
      DATA      BLOB,
      FILENAME  VARCHAR2(50 BYTE),
      TAILLE    INTEGER
    )
    TABLESPACE STARFIND
    PCTUSED    40
    PCTFREE    10
    INITRANS   1
    MAXTRANS   255
    STORAGE    (
                INITIAL          100M
                NEXT             100M
                MINEXTENTS       1
                MAXEXTENTS       2147483645
                PCTINCREASE      0
                FREELISTS        1
                FREELIST GROUPS  1
                BUFFER_POOL      DEFAULT
               )
    LOGGING 
    NOCOMPRESS 
    LOB (DATA) STORE AS 
          ( TABLESPACE  STARFIND 
            ENABLE      STORAGE IN ROW
            CHUNK       8192
            PCTVERSION  10
            NOCACHE
            STORAGE    (
                        INITIAL          100M
                        NEXT             100M
                        MINEXTENTS       1
                        MAXEXTENTS       2147483645
                        PCTINCREASE      0
                        FREELISTS        1
                        FREELIST GROUPS  1
                        BUFFER_POOL      DEFAULT
                       )
          )
    NOCACHE
    NOPARALLEL
    NOMONITORING;
    Si vous voyez des paramètres à optimiser, n'hésitez pas à les relever.

    D'ailleurs j'ai lu dans un forum Oracle (celui des liens de pifor), qu'on pouvait mettre en oeuvre une compression native oracle. Ca vous semble intéressant?

  13. #13
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    INITIAL de 100M donc déjà ton segment peut pas être plus petit que ça

Discussions similaires

  1. Réponses: 17
    Dernier message: 15/05/2006, 12h28
  2. Perte du contenu des blobs
    Par macakou99 dans le forum Débuter
    Réponses: 10
    Dernier message: 22/05/2003, 15h17
  3. Blob (interbase) d'une Database à l'autre
    Par TOM-Z dans le forum XMLRAD
    Réponses: 2
    Dernier message: 18/05/2003, 21h57
  4. faire un insert pour un champ blob
    Par tripper.dim dans le forum InterBase
    Réponses: 10
    Dernier message: 02/05/2003, 16h56
  5. BLOB et INSERT
    Par Thomad dans le forum Débuter
    Réponses: 3
    Dernier message: 25/04/2003, 15h32

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