|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Salut à tous,
Toujours dans le cadre de l'optimisation de mon programme, je voudrais savoir s'il l'on peut optimiser le chargement (SQL*LOADER) d'un fichier plat dans une table ? Mon fichier peut faire de 200 000 à 3 000 000 de lignes à charger. Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 437 ![]() |
Si tu peux passer par une table externe, je pense que c'est plus rapide sur des gros volumes.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Bonjour,
Je n'ai pas compris ton idée... |
|
|
01
|
|
|
#4 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
External Tables Concepts
Et un exemple d'utilisation dans la section Pipelined Functions de l'article où peut être que le process global peut t'intéresser |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Merci.
J'ai lu quelques commentaire sur le sujet, et apparemment, il vaut mieux utiliser les tables Externes si l'on veut simplement faire des SELECT sur les données, alors que dans mon cas, je les charges dans une table et s'en suit une multitude d'UPDATE et DELETE sur la dite table. A votre avis, SQL*LOADER parait le choix le plus judicieux? |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Non je ne suis pas d'accord avec ta conclusion, dans l'article proposé la fonction pipelined permet de développer la partie transformation avant de loader les données validées.
Par contre si tu conserves sql*loader il ne faut pas loader les données dans la table finale, il faut créer une table de travail à partir de laquelle tu joueras ton process, ça permettra d'utiliser sql*loader en mode truncate + direct pour accélérer le load. |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Oui mais je fais des transformations SQL dans mon SQL*LOADER pour aller plus vite car avant je les faisais sur ma table.
Si j'utilise l'accès direct, j'ai vu que l'on ne peut utiliser d'instructions SQL et donc, je suis obligé de le faire sur ma table, chose qui me prendra plus de temps. Vous ne croyez pas? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com