Bonjour,
un petit article traitant de la Mise à jour de données entre deux tables sous Oracle.
Etude sous l'angle des performances.
Lire l'article
Bonne lecture,
Laurent
Bonjour,
un petit article traitant de la Mise à jour de données entre deux tables sous Oracle.
Etude sous l'angle des performances.
Lire l'article
Bonne lecture,
Laurent
Pour ceux qui s’intéressent au problème, un complément d'information : 8 Bulk Update Methods Compared
Salut,
Juste une remarque par rapport au chapitre 4.
Si je ne me trompe, les cas où l'update de vue ne passe pas sont exactement ceux où il n'y a pas de contrainte d'unicité sur la jointure :
Sur la doc Oracle c'est un peu flou :
Par contre, l'Oncle Tom est un peu plus précis sur asktom (j'avais également fait un petit article dans le temps sur l'utilisation du MERGE dans ce cas, et Mnitu m'avait fait revoir ma copie sur l'update de vue ) :The key-preserving property of a table does not depend on the actual data in the table. It is, rather, a property of its schema. For example, if in the emp table there was at most one employee in each department, then deptno would be unique in the result of a join of emp and dept, but dept would still not be a key-preserved table.
http://asktom.oracle.com/pls/asktom/...D:273215737113
EDIT :You NEED a primary key/unique constraint on
object_id in T1 to ensure that each row in T joins to AT MOST 1 row in T1.
Il me semble qu'étiquement on ne peut pas poster de lien vers son propre blog pourri, n'hésitez pas à me modérer
http://pacmann.over-blog.com/article...-40373367.html
Comme d'habitude avec Oracle le même sujet est traité dans plusieurs endroits:
Updatable Join Views
Bonjour,
Pour information, avez vous vidé la shared pool avant de tirer chaque requête?
Les blocks étant en mémoire certaines requêtes peuvent être plus rapides.
Merci
Bonjour,
Non, je ne vide pas la shared pool avant, sauf si je le dis explicitement.
En effet les performances ne sont pas les mêmes que si le pools étaient vidés avant, mais normalement, ca ne doit pas remettre fondamentalement en cause les performances relatives entre les solutions.
Le fait de vider les shared pools reflète plus certaines conditions de production, mais d'autre conditions de production arrivent à garder une bonne partie des données dans les shared pools.
Du coup la performances du sous système disque sera plus décisive.
Comme je dis souvent en terme de performances, ca dépend de beaucoup de choses, et rien ne vaut des tests dans l'environnement réel d’exécution de l'application avec les vrais données qui pour un tas de raisons peuvent parfois démentir les plus belles théories.
Cependant, heureusement, dans pas mal de contextes la théorie reste vrai.
Partager