Précédent   Forum du club des développeurs et IT Pro > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 27/06/2011, 16h02   #1
LaurentN
Membre actif
 
Homme Laurent NAVARRO
Développeur informatique
Inscription : mai 2005
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Laurent NAVARRO
Âge : 38
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 15
Points : 185
Points : 185
Par défaut [Article] Mise à jour de données entre deux tables sous Oracle

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
LaurentN est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 28/06/2011, 09h08   #2
mnitu
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 4 104
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 4 104
Points : 7 997
Points : 7 997
Pour ceux qui s’intéressent au problème, un complément d'information : 8 Bulk Update Methods Compared
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/06/2011, 11h09   #3
pacmann
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 424
Points : 2 433
Points : 2 433
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 :
Citation:
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.
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 ) :

http://asktom.oracle.com/pls/asktom/...D:273215737113

Citation:
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.
EDIT :
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
__________________

(c'est ma photo)
Paku, Paku !
Pour les jeunes incultes : non, je ne suis pas un pokémon...

Le pacblog : http://pacmann.over-blog.com/
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 22h21   #4
mnitu
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 4 104
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 4 104
Points : 7 997
Points : 7 997
Citation:
Envoyé par pacmann Voir le message
...Sur la doc Oracle c'est un peu flou :
...
Comme d'habitude avec Oracle le même sujet est traité dans plusieurs endroits:
Updatable Join Views
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 22h48   #5
kervoaz
Membre habitué
 
Inscription : février 2006
Messages : 139
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2006
Messages : 139
Points : 128
Points : 128
Par défaut Question sur le test

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
kervoaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 07h24   #6
pacmann
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 424
Points : 2 433
Points : 2 433
Citation:
Envoyé par mnitu Voir le message
Comme d'habitude avec Oracle le même sujet est traité dans plusieurs endroits:
Updatable Join Views
Enfin je trouve que ça reste dans le même esprit... ils parlent de PK dans les "for example"... je trouve ça assez insupportable cette esquive constante d'énoncer une règle propre et précise.
__________________

(c'est ma photo)
Paku, Paku !
Pour les jeunes incultes : non, je ne suis pas un pokémon...

Le pacblog : http://pacmann.over-blog.com/
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 08h16   #7
LaurentN
Membre actif
 
Homme Laurent NAVARRO
Développeur informatique
Inscription : mai 2005
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Laurent NAVARRO
Âge : 38
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 15
Points : 185
Points : 185
Bonjour,

Citation:
Envoyé par kervoaz Voir le message
Bonjour,

Pour information, avez vous vide la shared pool avant de tirer chaque requête?
Les blocks etant memoire certaines requetes peuvent etre plus rapides.

Merci
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.
LaurentN est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 20h27.


 
 
 
 
Partenaires

Hébergement Web