|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() |
Bonjour,
J'ai deux bases V1 et V2, je dois migré le contenue d'une importante table maTable (80 millions de lignes) de la V1 vers 4 tables de la base V2 (selons des 4 critères) avec un petit mapping dont lequel j'ai besoin de quelques données de la V2. Je voulais savoir quelle est la plus meilleure (plus performante) façon de faire: - Passer par des inserts avec un database link de la V2 vers la V1. - Passer par des fichiers plats et Sql loader. - Création de view de maTable sur la base V2 puis des inserts ... Je veux savoir vos avis et/ou vos propositions Merci d'avance pour vos réponses. |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : janvier 2004 Messages : 845 ![]() |
Salut,
personnellement je pense que je ferais un export/import de la table source vers une table provisoire dans la base cible, puis un traitement (genre procédure) à l'interne de la base cible pour répartir mes lignes dans les 4 tables finales... Au final tu n'aura plus qu'à supprimer ta table provisoire... mais dans le cas où ton traitement de répartition ne se passe pas comme tu veux, tu as toujours tes données sources déjà migrées dans la base cible pour pouvoir recommencer, donc sans ré-impacter la base source.
__________________
Il est plus facile de voir les signes avant-coureurs après coup que l'inverse ! Yorglaa |
|
|
00
|
|
|
#3 |
![]() ![]() Consultant en Business Intelligence Inscription : janvier 2007 Messages : 1 192 ![]() |
Bonjour,
Je rejoint Yorglaa sur la réponse. Je pense que Sql loader n'est pas très adapté pour ce genre de chose, la charge est trop importante. L'import/export est beaucoup plus rapide et comme dit Yorglaa si ton traitement échoue au moins les données sont déjà dans ta base cible. |
|
|
00
|
|
|
#4 | |
|
Invité régulier
![]() |
Citation:
Evidement c'est aussi une piste, mais vous pensez pas que créer une copier de (80 millions d'enregitrement) en locale, est un double travail !! Est ce que la création d'une view sur la table V1 maTable n'est pas mieux ? |
|
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() Inscription : janvier 2004 Messages : 845 ![]() |
Salut,
passer 80 millions de lignes via le réseau (vue avec DBLink) ne me semble pas vraiment "gratuit" en charge ! Sans compter que comme tu dois faire du traitement pour ventiler tes lignes dans tes tables cibles, tu n'est pas à l'abri d'une erreur, d'un plantage réseau, ou tout autre de ces petits soucis qui jalonnent l'informatique et qui te fasse planter tout le traîtement... et là bonjour la perte de temps ! Personnellement, pour transférer un tel nombre de lignes, je suis prêt à prendre les paris sur le fait que export/import est la solution la plus adaptée en terme de charge... évidemment ça implique de créer un "doublon" dans la base cible avant d'effectuer ta ventilation... mais je ne sais pas en l'état si l'espace disque est une contrainte majeure de ta problématique !
__________________
Il est plus facile de voir les signes avant-coureurs après coup que l'inverse ! Yorglaa |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
Pas tout à fait d'accord
En terme de performance, le plus éfficace sera d'exporter 4 fichiers à l'image des 4 tables finales, de copier ces fichiers sur la machine cible (en faisant éventuellement une copression intermédiaire) et d'effectuer un sql-loader en mode "DIRECT=TRUE". Je parle bien de performances, cette methode comporte un risque si les données ne sont pas en cohérence parfaite avec la cible finale (contraintes et indexs cassés....) |
|
|
00
|
|
|
#7 | |
|
Membre émérite
![]() Inscription : janvier 2004 Messages : 845 ![]() |
huuuum...
dans ce cas tu fais faire le travail de répartition par la base source pour avoir tes 4 fichiers distinct. Hors si ces clauses de répartitions s'appuient sur des données pré-éxistantes dans la base cible, ça reste la cata puisqu'on repart sur des DBLinks. Je dis ça, je dis rien... Mais en partant du postulat que le schéma cible est différent du schéma source (puisqu'on va de 1 table vers 4 tables), rien ne me garantis que j'ai les éléments de répartition dans la bas source, je cites le Post initial : Citation:
__________________
Il est plus facile de voir les signes avant-coureurs après coup que l'inverse ! Yorglaa |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com