|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 277 ![]() |
Salut,
Je suis sous oracle 10, je dois alimenter une table Target T à partir d'une table source S. Ma table target T contient actuellement 26 452 142 lignes. La table source, contient des lignes existantes dans la target T mais aussi des nouvelles lignes. Donc afin de savoir si je dois faire un insert ou update, je compte faire une jointure externe entre la table S et la table T. Si la clé existe dans S et non dans T c'est un insert sinon Update. Par contre, les update,appramment c'est très long, je peu avoir à mettre à jour 20 lignes comme 100 000 de lignes. Pourquoi est-ce aussi long ?pourrait t on m expliquer ? et comment peut-on optimiser cela ? Merci à tous |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Utilisez Merge.
|
|
|
30
|
|
|
#3 | ||
|
Membre confirmé
![]() Inscription : février 2012 Messages : 203 ![]() |
Le merge fonctionnant en ROW BY ROW, ce n'est pas la plus efficace
Un INSERT et un UPDATE "ciblés" devraient faire l'affaire Code :
|
||
|
|
01
|
|
|
#4 |
![]() ![]() |
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : février 2012 Messages : 203 ![]() |
On m'aurait menti !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com