Questions sur un article de Greg Rahn
Bonsoir,
je viens de parcourir la traduction d'un article de ce monsieur sur le site de Pachot concernant les traitements batch pour les mises à jour de données en masse... J'ai envoyé quelques questions à l'auteur restées sans réponses (pour l'instant) aussi je voulais vous les soumettre :
L'article affirme :
Citation:
Les update (et delete) de masse sont à proscrire
La question que je me pose est donc comment faire sans.
Les techniques utilisées par l'auteur (d'après son blog) :
Citation:
Instead of bulk UPDATES/DELETES, use set theory to create the compliment via CTAS (or similar). That is, for DELETE recreate what you want to keep, for UPDATE, recreate with the modifications.
There are a few reasons for this:
1) Compression – UPDATES/DELETES are more expensive with compression and they generally leave the data in a much less compressed format
2) Logging – Both UPDATE and DELETE are logging operations and a NOLOGGING CTAS or INSERT /*+ APPEND */ are not.
As a result, it is often faster and better (from a compression point of view) to recreate the segment.
Savez vous comment mettre en oeuvre ces techniques ?
Mais si on a une base opérationnelle de production avec potentiellement un utilisateur loggué
peut-on se permettre ce genre de manoeuvre...
Ou trouver un exemple de ces utilisations pour mises à jour en masse ?
Citation:
" j’ai codé complètement un flux de donnée qui travaille de manière ensembliste, avec juste une poignée de requêtes SQL (et pas de PL/SQL). "
J'imagine qu'il se retrouve avec un seul upsert au final, mais comment traite-t-il ses erreurs potentielles ?
Comment récupère-til les lignes en erreur ?
Merci pour votre avis sur la question,
Lek.