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 :

[9i] sous-partition par hash


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 40
    Par défaut [9i] sous-partition par hash
    Bonjour,
    J'ai une table partitionnée par RANGE (sur une date) et sous partitionée par HASH (sur un champ qui peut prendre 4 valeurs)

    Le soucis, c'est que j'aimerais tronquer une des sous partition pour chaque date (faut oublier le delete, sinon on va flinguer le rollback segment et/ou ça va prendre des plombes).
    L'embetant, c'est qu'il faut que je trouve la bonne sous partition (par exemple celle qui est attribuée à la valeur "2").
    Or, oracle nomme lui même ses sous-partitions (par hash) avec des noms barbares.
    Alors, est-ce qu'il existe quelquepart une table systeme qui nous dit la valeur attribuée à chaque sous partition.
    Ou, est-ce que je vais être obligé de récupérer mes nom de sous partition dans ALL_TAB_SUBPARTITION et de regarder à la mimine pour savoir quelle sous-partition contient quoi.

    Voilà, je sais pas si j'ai été très clair...

  2. #2
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    Est ce que tu as indiqué lors de la création de la table le nom des partitions et le mode de hash ?

    as tu le scripts de création de la table ?

    Pour moi la définition d'une partition HASH est que tu n'est pas capable de trouver une méthode de partition dc tu laisses ORACLE gérer le décomposition de la partition donc il fait ce qu'il veux et en supposant que tu trouve la parition pour les valeur "2" rien ne te dis que tu vas pas avoir de valeur "3" dedans.

    Je sais c'est facile à dire mais si tu a que 4 valeurs dans tes sous partition pourquoi ne pas avoir fait une partition liste ou une partition RANGE ausi ??
    Là tu pourrais identifier la bonne sous partition !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 40
    Par défaut
    Non, je les ai pas nommées, vu que de tte façon, avec le Hash tu sais pas dans quelle sous-partition oracle va déposer ses lignes. (ou alors, je délire pe totalment)

    De toutes façon, la table a été crée comme ça et c'est plus possible de renomer les sous partition (d'un point de vu technique et fonctionel)

    En tt cas, je te file le bout de script de création :
    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
     
    CREATE TABLE MaTable
    (
      COMMUT       VARCHAR2(4)   NOT NULL,
      DATDEB     VARCHAR2(10)  NOT NULL,
      colonne1  VARCHAR2(4) ,
      colonne2  VARCHAR2(4),
      colonne3 ...
    )
    TABLESPACE TAB_DRLD_DB_XL
    NOLOGGING
    PARTITION BY RANGE (DATDEB) 
    SUBPARTITION BY HASH (COMMUT)
    (  
      PARTITION P_CDR_20051223 VALUES LESS THAN ('2005/12/24')
        NOLOGGING
        TABLESPACE TAB_DB_P16_L
        PCTUSED    40
        PCTFREE    10
        INITRANS   1
        MAXTRANS   255
        STORAGE    (
                    BUFFER_POOL      DEFAULT
                   )
        SUBPARTITIONS 4 STORE IN (TAB_DB_P16_L,TAB_DB_P16_L,TAB_DB_P16_L,TAB_DB_P16_L),  
      PARTITION P_CDR_20051224 VALUES LESS THAN ('2005/12/25')
        NOLOGGING
        TABLESPACE TAB_DB_P17_L
        PCTUSED    40 
        PCTFREE    10
        INITRANS   1
        MAXTRANS   255
        STORAGE    (
                    BUFFER_POOL      DEFAULT
                   )
        SUBPARTITIONS 4 STORE IN (TAB_DB_P17_L,TAB_DB_P17_L,TAB_DB_P17_L,TAB_DB_P17_L),  
      PARTITION P_CDR_20051225 VALUES LESS THAN ('2005/12/26')
        NOLOGGING
        TABLESPACE TAB_DB_P18_L
        PCTUSED    40
        PCTFREE    10
        INITRANS   1
        MAXTRANS   255
        STORAGE    (
                    BUFFER_POOL      DEFAULT
                   )
        SUBPARTITIONS 4 STORE IN (TAB_DB_P18_L,TAB_DB_P18_L,TAB_DB_P18_L,TAB_DB_P18_L),
    ....
    ....
    etc... pour 50 partitions
    En tout merci quand même pour ta remarque

  4. #4
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    Citation Envoyé par saysay
    Non, je les ai pas nommées, vu que de tte façon, avec le Hash tu sais pas dans quelle sous-partition oracle va déposer ses lignes. (ou alors, je délire pe totalment)
    Je suis d'accord avec toi, malheureusement je connais pas de moyen de connaitre la sous partition contenant les valeur 2 et je suis pas sur que cette valeur soit dans une seule partition.

    Désolé

  5. #5
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    Un petit truc, je sais que l'on peut faire un select directement dans une partition ou sous partition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select * from matable subpartition sb_part1
    where commut = '2'
    Je pense que sb_part1 est indiqué dans la table ALL_TAB_SUBPARTITION

    et tu devrais trouvé la partition concernée par les valeurs 2 mais il est possible que 2 sous sous partition d'une même partition peux avoir des valeur = 2

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 40
    Par défaut
    Merci sygale, c'est bien ce que je pensais (cf le premier message).
    Effectivement, je sens bien que je vais être obligé d'aller chercher mes infos à la mimine (oui, je suis un partisant du moindre effort)...

Discussions similaires

  1. [9i] Comportement des sous-partitions par Hash
    Par saysay dans le forum Administration
    Réponses: 6
    Dernier message: 06/08/2008, 16h44
  2. Réponses: 7
    Dernier message: 02/02/2005, 20h32
  3. [CR] Sous Total par page
    Par adrien_78 dans le forum SAP Crystal Reports
    Réponses: 16
    Dernier message: 19/01/2005, 12h29
  4. [CR]utilisation de valeur d'un sous état par un état
    Par ministry dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 12/09/2003, 11h24
  5. Sauvegarde problématique sous excel par OLE
    Par ulysse66x dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 16/04/2003, 21h23

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