Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1247 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

SQL - update dans plusieurs fichiers

n°961876
Hafrexx
L'antre du diable
Posté le 25-01-2005 à 14:02:19  profilanswer
 

Reprise du message précédent :
C'est con ça fait 5 ans que je code du SQL et j'étais toujours emmerdé quand je devais faire ce type d'opérations.
 
Bon oserais-je poser une question plus compliquée (je pense) :whistle:
Cette fois c'est plus pour la culture personnelle sur la manière dont Oracle analyse les requêtes :D
Donc ne vous prenez pas la tête dessus, j'ai un jour essayé cette requête, elle prend un temps énorme bien qu'il n'y ait qu'un miliers d'enregistrements dans la base
 

Citation :


select * from DMAPTree where type=1 or type=0 connect by parentid = PRIOR ID start with id in  
((select origindataid from dtree where dataid in  
(select id from dmaptree where type='0' connect by prior id=parentid start with id=1000))
 union  
(select id as origindataid from dmaptree where id=1000)) order by name


 
Alors que d'exécuter  
 

Citation :


((select origindataid from dtree where dataid in (select id from dmaptree where type='0' connect by prior id=parentid start with id=1000))
 union  
(select id as origindataid from dmaptree where id=1000))  


 
Puis d'exécuter
 

Citation :


select * from DMAPTree where type=1 or type=0 connect by parentid = PRIOR ID start with id in (1,2,3,4) order by name


 
Est d'une vitesse normale.
 
Ce qui signifie qu'Oracle ne commence pas par exécuter la sous-requête puis réinjecter le résultat dans la requête principale. Du coup il doit y avoir moyen de l'optimiser, mais là je ne sais plus comment puisque ma logique de calcul d'Oracle n'est pas pareil que la mienne [:ddr555]


---------------
Ne vous mariez qu'une fois dans votre vie tellement c'est galère © randolfinette | Quand l'antre grogne, le diable cogne... | Un problème d'acquisition VHS?
mood
Publicité
Posté le 25-01-2005 à 14:02:19  profilanswer
 

n°961981
Beegee
Posté le 25-01-2005 à 15:17:28  profilanswer
 

Il me semble qu'il y a un hint en Oracle pour qu'il évalue la sous requête d'abord ...
Sinon, en changeant les 'in' par des 'exists' il doit évaluer les sous-requêtes d'abord il me semble ;)

n°962066
Hafrexx
L'antre du diable
Posté le 25-01-2005 à 16:13:36  profilanswer
 

T'es un chef en effet le exists va bien plus vite  
[:roi]


---------------
Ne vous mariez qu'une fois dans votre vie tellement c'est galère © randolfinette | Quand l'antre grogne, le diable cogne... | Un problème d'acquisition VHS?
n°962146
Beegee
Posté le 25-01-2005 à 17:18:49  profilanswer
 

Un grand classique, remplacer les IN par des EXISTS :D

n°962414
Hafrexx
L'antre du diable
Posté le 25-01-2005 à 23:28:35  profilanswer
 

T'as pas un lien avec les grands classiques, parceque toute ma doc est en fait des trucs très basiques ?
 
Faut que j'arrête parceque si ça continue j'vais aussi être modo sur prog [:totoz]


---------------
Ne vous mariez qu'une fois dans votre vie tellement c'est galère © randolfinette | Quand l'antre grogne, le diable cogne... | Un problème d'acquisition VHS?
n°963695
Beegee
Posté le 27-01-2005 à 13:34:48  profilanswer
 

Tiens, je suis tombé sur ce pdf assez intéressant :
 
http://sheikyerbouti.developpez.co [...] sation.pdf
 
En particulier le paragraphe : "Le code SQL à ne pas écrire" :)

n°963747
Hafrexx
L'antre du diable
Posté le 27-01-2005 à 14:29:54  profilanswer
 

Trop bon ce pdf :jap:


---------------
Ne vous mariez qu'une fois dans votre vie tellement c'est galère © randolfinette | Quand l'antre grogne, le diable cogne... | Un problème d'acquisition VHS?
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[C] lecture fichiers / calcul / reecriture[PERL] Problême de data sharing entre plusieurs threads...
SQL Server : récupérer les enregistrements n à m, problème[PHP]zip de fichiers
Supprimer plusieurs caractères dans une chaine ?[Java + Linux] Il me manque des fichiers :(
[PHP] SQL !!comment faire plusieurs additions a la fois ?
[ACCESS] Importer dans une base les données de plusieurs bases AccessSQL serv - reconnaitre une clé primaire
Plus de sujets relatifs à : SQL - update dans plusieurs fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR