begin process at 2012 05 26 22:57:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Oracle

 > 

Requêtes

 > 

Optimisation de la requête update sous Oracle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Optimisation de la requête update sous Oracle

mardi 1 février 2011 à 15:36:54 | Optimisation de la requête update sous Oracle

YOUEL24

Bonjour,

L'exécution de la requête ci-dessous sous oracle, me prends plus de 3h, pourriez-vous svp m'aider à l'optimiser?

D'avance, je vous remercie.

Celine.

**************************************************************
update table1 A
set A.CHAMPSa2='YES'
WHERE A.champsA1=
(select distinct A.champsA1
from table2 B,table3 C
where A.cle1=B.cle1 and A.cle2=C.cle2 and A.champsA1 in ('11111','2222','3333')
and B.champsB1 not in('AAAAA') and C.champsC1 ='ATN' and A.ENV='DEV') ;
***************************************************************
mardi 1 février 2011 à 16:37:59 | Re : Optimisation de la requête update sous Oracle

nhervagault

Administrateur CodeS-SourceS
Salut,

Voici des pistes dans le désordre. (merci d'indiquer tes resultats apres)

As-tu mis des index sur les colonnes?

Utilises des inner join sur les colonnes de references?

Utilises une vue pour la requete de sélection?

Changes le not in ('AAAA') en != de 'AAAA' ou not (je ne connais pas trop Oracle)(l'operateur est moins gourmand)

Evites l'utilisation de distinct prend plutot un top 1.
Surtout que distinct peut renvoyer n enregistrements.


Bon dev
mercredi 2 février 2011 à 10:46:58 | Re : Optimisation de la requête update sous Oracle

YOUEL24

Bonjour,

Merci pour votre aide.
Quelle est la commande pour prendre le top 1? est-ce que je peux utiliser MAX(ChampsA1) à la place de distinct?

Merci
mercredi 2 février 2011 à 10:53:14 | Re : Optimisation de la requête update sous Oracle

nhervagault

Administrateur CodeS-SourceS
Salut

http://www.orafaq.com/faq/how_does_one_select_the_top_n_rows_from_a_table

Je ne savait pas que top n'etait pas defini dans oracle

encore mieux peut etre
Code :
SELECT column FROM table
WHERE ROWNUM = 1

jeudi 24 février 2011 à 19:17:22 | Re : Optimisation de la requête update sous Oracle

EricSQL

Bonjour,

avant toutes choses, il faudrait connaitre quels sont les index sur les 3 tables, et les volumétries en jeu.
Sans connaitre ces informations, la requête devrait être plus rapide ainsi :
Code :
Update TABLE1 A
  set A.champsa2 = 'YES'
  where exists (
                 Select 1
                   from TABLE2 B
                      , TABLE3 C
                   where A.cle1     =  B.cle1
                     and A.cle2     =  C.cle2
                     and B.champsB1 <> 'AAAAA'
                     and C.champsC1 =  'ATN'
               )
    and A.champsA1 in ('11111','2222','3333')
    and A.ENV      =  'DEV'
    and A.champsa2 <> 'YES'
;



/Eric


Cette discussion est classée dans : and, requête, oracle, update, champsa1


Répondre à ce message

Sujets en rapport avec ce message

requête UPDATE [ par richch ] Salut,Voici une requête qui ne fonctionne pas, j'ai pas traové l'erreur, veuillez m'aider.SQL = "UPDATE admin SET password='" & nouveauMpasse & "'logi requête sql (update avec deux bases) [ par jee0404 ] Bonjour,            Je veux pouvoir updater le prix de mes enregistrements de la base de donnée 1 avec les prix de la base de donné 2 , si le champ it Problème requête UPDATE. [ par woot6768 ] Bonjour,J'ai un soucis avec une requête UPDATE, je vous fournis le code correspondant (codé en c#) :string lineCmd = "UPDAT SQL->Oracle [ par cnguyen ] BonjourJ'ai fais une appli en C# avec VS2005 et SQLServer2005Je suis entrain de passer de SQL à Oracle.Je voudrais savoir ce que je dois faire au nive requête update sql/as400 [ par vkrf ] BonjourJe rencontre sur as/400 v5r1  un problème avec la requete SQL suivante :update mabib/fichier1 set colonne100 = (select colonne2 from mabib/fich Nombre de requête imbriquer max??? [ par Polack77 ] Bonjour , Je développe acculement une appli (en VB) qui gère une base de données. Mon problème est que je dois être compatible avec un maximum de SGBD Problème script Oracle 10 [ par Psychik ] Bonjour,J'envoie ce message car j'avoue que je suis en train de m'arracher les cheveux avec les scripts sous Oracle 10. Voici mon problème:   je dois Oracle-Hibernate - Violation de protocole :( [ par DARKSIDIOUS ] Salut les amis,J'utilise Hibernate dans un projet web J2EE avec une base oracle. J'essaye de faire une requête toute simple : récupèrer un objet de ty Optimisation de requête update [ par Rankin ] Salut à tous !Je travaille actuellement sur le développement d'un plugin pour Nagios qui permet d'analyser les logs. En deux mots, une application sur Problème avec une requête (soupçon orienté vers le GROUP BY) [ par 6xavier6 ] Bonjour,J'ai un problème avec une requête en SQL.Apparemment mon GROUP BY ne fonctionnerait pas bien (enfin comprenait que j'ai du me planter lamentab


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales