Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/11/2007, 15h43   #1
Membre Expert
 
Inscription : septembre 2006
Messages : 1 466
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 466
Points : 1 593
Points : 1 593
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.
Morbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 15h57   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 16h40   #3
Membre Expert
 
Inscription : septembre 2006
Messages : 1 466
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 466
Points : 1 593
Points : 1 593
Je pensais aussi naïvement qu'un blob peserait autant que le document original.
En fait mon DSI me pose la question suivante :
Citation:
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.
Morbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 16h47   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 16h55   #5
Membre Expert
 
Inscription : septembre 2006
Messages : 1 466
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 466
Points : 1 593
Points : 1 593
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?
Morbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 17h06   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 18h00   #7
Membre Expert
 
Inscription : septembre 2006
Messages : 1 466
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 466
Points : 1 593
Points : 1 593
Ben j'ai pas trouvé comment faire en fait :p.
Morbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 18h22   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
regarde dans DBA_SEGMENTS
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 20h04   #9
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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 :
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.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 17h09   #10
Membre Expert
 
Inscription : septembre 2006
Messages : 1 466
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 466
Points : 1 593
Points : 1 593
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).
Morbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 18h13   #11
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 11h32   #12
Membre Expert
 
Inscription : septembre 2006
Messages : 1 466
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 466
Points : 1 593
Points : 1 593
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 :
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?
Morbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 11h34   #13
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
INITIAL de 100M donc déjà ton segment peut pas être plus petit que ça
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h56.


 
 
 
 
Partenaires

Hébergement Web