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 :

Cluster de tables : usine à gaz ou mécanisme jamais utilisé?


Sujet :

Administration Oracle

  1. #1
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut Cluster de tables : usine à gaz ou mécanisme jamais utilisé?
    Bonjour

    Je souhaiterais trouver un exemple significatif de tables en cluster en index. Après je m'intéresserai au hash pour comparer.

    Après avoir potassé la doc, et sur un exemple simple d'association 1-N entre Adhérent et opérateurs (un opérateur regroupe plusieurs adhérents) , j'essaye de jouer sur la volumétrie des 2 tables (jusqu'à 2 millions d'adhérents et de 6 à 10000 opérateurs), et sur SIZE, et bien la solution sans cluster (FK only) est toujours plus performante quelque soient les requêtes émises (adhérent d'un opérateur donné, opérateur d'un adhérent, etc.).
    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
     
    CREATE CLUSTER adherent_operateur_cluster
       (opeid_cle CHAR(4)) 
    -- SIZE ...
    TABLESPACE tbs_cluster;
     
    CREATE INDEX idx_adherent_operateur_cluster
          ON CLUSTER adherent_operateur_cluster;
     
    CREATE TABLE Operateurs_cluster 
      (opeid_cle       CHAR(4) NOT NULL PRIMARY KEY, 
      nomope      VARCHAR(25) NOT NULL, 
      creaope     DATE NOT NULL,
      siegesocial VARCHAR(15) NOT NULL,
      nbclients   NUMBER(7) NOT NULL)
      CLUSTER adherent_operateur_cluster(opeid_cle);
     
    CREATE TABLE Adherent_cluster
     (adhid  NUMBER(10) NOT NULL, 
      nom        VARCHAR(25) NOT NULL, 
      prenom     VARCHAR(30) NOT NULL, 
      civilite   VARCHAR(12) NOT NULL, 
      date_nais  DATE NOT NULL,
      tel        VARCHAR(20),   solde      NUMBER(6,2),
      opeid_cle  CHAR(4))
      CLUSTER adherent_operateur_cluster(opeid_cle);
    Qui a déjà utilisé avec succès une telle usine à gaz ?
    Merci de vos réponses

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Je n'ai jamais utilisé de tables en cluster mais à ma compréhension cela joue seulement sur certaines catégories de requêtes: celles qui utilisent des jointures entre les deux tables.

    Sinon, tu devrais ajouter aussi le script pour remplir les tables ainsi que tes requêtes de test, comme ça il y aurait une bonne base de discussion.

  3. #3
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Merci Marius,

    Dans la doc,

    http://download.oracle.com/docs/cd/E...cls.htm#i25478

    l'exemple considéré concerne les fameux départements (DEPT) dont dépendent des employés (DEPT). Je ne fais que reproduire le même schéma.

    Je mettrai d'ici quelques jours les scripts et essayerai le hash cluster pour voir si il est plus efficace que son copain indéxé.

  4. #4
    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
    Points : 3 597
    Points
    3 597
    Par défaut
    Dans Expert Oracle Database Architecture page 376, Tom Kyte cite comme exemple de clusters le dictionnaire de la base (ici en 11.2):

    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
    SQL> select cluster_name, table_name from dba_tables where cluster_name is not null order by 1;
     
    CLUSTER_NAME                   TABLE_NAME
    ------------------------------ ------------------------------
    C_COBJ#                        CCOL$
    C_COBJ#                        CDEF$
    C_FILE#_BLOCK#                 UET$
    C_FILE#_BLOCK#                 SEG$
    C_MLOG#                        SLOG$
    C_MLOG#                        MLOG$
    C_OBJ#                         REFCON$
    C_OBJ#                         NTAB$
    C_OBJ#                         SUBCOLTYPE$
    C_OBJ#                         COLTYPE$
    C_OBJ#                         LOB$
     
    CLUSTER_NAME                   TABLE_NAME
    ------------------------------ ------------------------------
    C_OBJ#                         TAB$
    C_OBJ#                         CLU$
    C_OBJ#                         COL$
    C_OBJ#                         IND$
    C_OBJ#                         ICOL$
    C_OBJ#                         OPQTYPE$
    C_OBJ#                         ICOLDEP$
    C_OBJ#                         VIEWTRCOL$
    C_OBJ#                         LIBRARY$
    C_OBJ#                         ASSEMBLY$
    C_OBJ#                         TYPE_MISC$
     
    CLUSTER_NAME                   TABLE_NAME
    ------------------------------ ------------------------------
    C_OBJ#                         ATTRCOL$
    C_OBJ#_INTCOL#                 HISTGRM$
    C_RG#                          RGCHILD$
    C_RG#                          RGROUP$
    C_TOID_VERSION#                COLLECTION$
    C_TOID_VERSION#                TYPE$
    C_TOID_VERSION#                ATTRIBUTE$
    C_TOID_VERSION#                METHOD$
    C_TOID_VERSION#                PARAMETER$
    C_TOID_VERSION#                RESULT$
    C_TS#                          FET$
     
    CLUSTER_NAME                   TABLE_NAME
    ------------------------------ ------------------------------
    C_TS#                          TS$
    C_USER#                        USER$
    C_USER#                        TSQ$
    SMON_SCN_TO_TIME_AUX           SMON_SCN_TIME
     
    37 rows selected.
     
    SQL>
    Le cluster C_OBJ# est très utilisé puisqu'il stocke une grande partie des informations des colonnes de tables.

    "L'usine à gaz" semble très bien fonctionner ... au moins dans le dictionnaire Oracle

  5. #5
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Merci,

    OK je vais creuser dans les réponses du gourou Tom sur son site. Quand j'ai trouvé un exemple significatif, je viens le présenter ici.

Discussions similaires

  1. une usine à gaz avec excel
    Par panthera26 dans le forum Excel
    Réponses: 1
    Dernier message: 27/10/2012, 23h50
  2. 20 tables, 10 participants, 3 rounds, Jamais mêmes personnes
    Par prtb07 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/02/2012, 12h14
  3. Comment gérer un projet pour qu'il ne devienne pas une usine à gaz ?
    Par ravakhasina dans le forum Gestion de projet
    Réponses: 15
    Dernier message: 07/12/2010, 15h24
  4. Data Block corrompu dans cluster de table
    Par Korfandar dans le forum Administration
    Réponses: 2
    Dernier message: 08/09/2010, 19h15
  5. Usine à gaz pour coins arrondis ... souci de height
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 17/02/2006, 09h34

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