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 :

Demande de conseil pour migration de lignes vers colonnes


Sujet :

Administration Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 3
    Par d�faut Demande de conseil pour migration de lignes vers colonnes
    Bonjour � tous,

    Ce message n'est pas vraiment une question mais une demande de conseil.

    Tout d'abord le d�cor :

    Oracle version 8i

    Nous avons deux tables :

    table_colonnes:
    num_pers
    col_a
    col_b
    col_c

    table_lignes:
    num_pers
    cod_ligne
    valeur_ligne

    Il va falloir ajouter des colonnes dans table_colonnes afin de migrer les donn�es de table_lignes vers cette tables.

    Nous aurons donc au final:

    table_colonnes:
    num_pers
    col_a
    col_b
    col_c
    col_x
    col_y

    Dans laquelle le contenu de col_x et col_y contiendront valeur_ligne pour le m�me num_pers et un cod_ligne choisi.

    Ce que je voudrais savoir :

    Comment orienteriez vous le devollepement sachant qu'il y a environ 12 000 000 de lignes � migrer.

    Merci d'avance pour vos r�ponses.

  2. #2
    R�dacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par d�faut
    On passe d'un mod�le normalis� � un mod�le d�normalis�.

    Je me cr�erai une nouvelle table TOTO qui est la jointure des deux tables indiqu�es. Une fois la table cr��, je supprimerai l'ancienne table table_colonnes et je renommerais ma table TOTO en table_colonnes.

    Au niveau des rollback, ca ne devrait pas �tre trop gourmant, puisque ce ne sont que des insert.

    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  3. #3
    Membre �clair�
    Inscrit en
    Avril 2004
    Messages
    54
    D�tails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 54
    Par d�faut
    Joli !!!
    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
     
    Insert into
                   New_Table
    Select
              coalesce( a.num_pers , b.num_pers , c.num_pers ) ,
              coalesce( a.col_a , ' ' ) ,
              coalesce( a.col_b , ' ' ) ,
              coalesce( a.col_c , ' ' ) ,
              coalesce( b.valeur_ligne , ' ' ),
              coalesce( c.valeur_ligne , ' ' ) 
    from
             table_colonne a
      Full Join
             table_ligne     b
      on
             b.num_pers = a.num_pers and
             b.cod_ligne = :XB
      Full Join
             table_ligne     c
      on
             c.num_pers = a.num_pers and
             c.cod_ligne = :XC

  4. #4
    CD
    CD est d�connect�
    Membre �prouv�
    Inscrit en
    Septembre 2004
    Messages
    127
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Par d�faut
    C'est une insertion ponctuelle ou c'est des insert r�currents ?

    Si c'est ponctuel avec un changement de table_colonne, le 'create table as select' me semble pas mal, en suivant ensuite l'id�e de Laly et en renommant la table r�sultat en table_colonne � la fin...

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 3
    Par d�faut
    L'id�e me semble bonne.

    Mais ce qui m'ennuie c'est le volume 18(mois) * 12 * 2 000 000.

    En plus les tables sont partitionn�es par trimestre.

  6. #6
    R�dacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par d�faut
    Si c'est partitionn�, c'est encore mieux, tu peux faire ta modif partition par partition et ensuite tu fais un �change entre la partition et la table temporaire, qqchose comme :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    alter table ... exchange partition ... with table ... including indexes without validation
    (syntaxe � v�rifier).


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 3
    Par d�faut
    c'est vrai j'y pensais m�me pas ....

    je laisse le topic ouvert au cas ou d'autres id�es viendraient ....

    et je teste les diff�rents cas .

    merci pour vos conseils

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Demande de conseils pour jeu en ligne
    Par geteo dans le forum R�seau et multijoueurs
    R�ponses: 1
    Dernier message: 03/01/2014, 14h24
  2. Demande Conseils pour Migration ERP
    Par medaadi dans le forum Forum g�n�ral ERP
    R�ponses: 1
    Dernier message: 14/10/2009, 17h15
  3. Demande de Conseils pour migrer php4 vers php 5
    Par Apprentilinux dans le forum Langage
    R�ponses: 1
    Dernier message: 31/03/2008, 19h06
  4. R�ponses: 6
    Dernier message: 15/02/2007, 10h31
  5. R�ponses: 16
    Dernier message: 15/11/2005, 20h07

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