Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2007, 14h30   #1
Invité de passage
 
Inscription : mai 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 1
Points : 0
Points : 0
Par défaut meilleur "DELETE" , problème de suppression ?

à partir d'une table temporaire T créée au cours d'1 session TSO après jointure entre tables A, B, C d'après certains critères dont C.3 = une valeur précise et A.1 = C.1 et A.2 = C.2 et B.1 = c.1 ,

je veux ensuite supprimer les ligne de C dont les colonnes
C.1 = T.1 et C.2 = T.2 et la colonne C.3 vaut la valeur précise du début;

sur C il y a un index unique bati à l'aide des colonne C.1, et C.2 et c.3 ;

question je suis obligé de conserver le principe de 2 requêtes 1 avec table temporaire T et ensuite suppression dans C d après table temporaire T ;
pourquoi je supprime plus de lignes dans C que celles crées dans T à partir de C, a, B, ? ???
pour performance DB2 vaut il mieux utiliser

delete from C where c.1 not in
( select c.1 from C x, T y where x.1 = y.1 et c.2 = y.2 et c.3 = valeur )
ou une autre forme construite sur un "not exists" ou autre chose ?

d'après vous ?
floritab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 19h06   #2
jab
Rédacteur
 
Avatar de jab
 
Homme Jean-Alain Baeyens
SharePoint developpeur
Inscription : février 2004
Messages : 1 172
Détails du profil
Informations personnelles :
Nom : Homme Jean-Alain Baeyens
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : SharePoint developpeur
Secteur : Service public

Informations forums :
Inscription : février 2004
Messages : 1 172
Points : 3 131
Points : 3 131
Envoyer un message via ICQ à jab Envoyer un message via MSN à jab Envoyer un message via Skype™ à jab
Citation:
Envoyé par floritab
delete from C where c.1 not in
( select c.1 from C x, T y where x.1 = y.1 et c.2 = y.2 et c.3 = valeur )
Il est normal que tu as plus de lignes supprimées que sélectionnées car tu supprimes toutes les lignes ou c1 existes dans ta sélection même si les autres critères ne sont pas respectés. je pense que ce n'est pas ce que tu veux. Pour les performances, cela me semble bon mais c'est toujours très difficile à faire. Voir mon article sur l'optimisation.
jab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2007, 14h58   #3
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 097
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 097
Points : 1 706
Points : 1 706
Citation:
Envoyé par floritab
à partir d'une table temporaire T créée au cours d'1 session TSO après jointure entre tables A, B, C d'après certains critères dont C.3 = une valeur précise et A.1 = C.1 et A.2 = C.2 et B.1 = c.1 ...
C'est quoi une table temporaire créée au cours d'une session TSO ?
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h33.


 
 
 
 
Partenaires

Hébergement Web