|
Bas de page | |
---|---|
Auteur | Sujet : [SQL] Optimisation de requête sql |
Publicité | Posté le 14-02-2012 à 09:49:04 |
maalicius | c'est de l Oracle, j aurai du précisé en effet |
maalicius | Alors en ce qui concerne ta proposition je l avais déjà essayé avant d utiliser le Where exists, malheureusement j avais la même erreur oracle.
|
Zzozo Un peu, passionément, à la fol | T1 et T2 ont la même volumétrie ?
--------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
Zzozo Un peu, passionément, à la fol | Y'a pas moyen de savoir si y'a pas des verrous intempestifs qui bloquent ta mise à jour ? (y'a bcp de monde qui l'utilise cette BDD ? bcp de transactions ? ) --------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
maalicius | Alors c'était une requête pour donner un exemple.
|
Zzozo Un peu, passionément, à la fol | Un EXPLAIN PLAN sur la requete SQL de mise à jour devrait donner qq pistes je pense Sinon j'en déduis que T2 contient moins de lignes que T1, c'est bien ça ? Message édité par Zzozo le 14-02-2012 à 13:56:15 --------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
maalicius | justement il y a le même nombre de lignes mais pas le même nombre de champs, donc en faisant l update il y a des champs null dans T1 qu on peut pas mettre en T2 d ou encore la clause where exists.
|
Zzozo Un peu, passionément, à la fol | Sinon
--------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
Publicité | Posté le 14-02-2012 à 14:04:15 |
Zzozo Un peu, passionément, à la fol | Heu j'ai pas bien compris là ...
--------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
maalicius |
Zzozo Un peu, passionément, à la fol | T'as lancé un SELECT COUNT(PK) FROM T1 et un SELECT COUNT(PK) FROM T2 à tout hasard ? --------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
Zzozo Un peu, passionément, à la fol |
--------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
maalicius | je viens de relancer, et je me suis trompé. pas le même nombre de ligne et c est totalement logique car une contrepartie peut avoir plus facility donc |
maalicius | exactement, tu as très bien compris et c'est exactement ça le problème. On peut les forcer à Null mais on ne veut pas le faire. |
maalicius | Ouf, enfin j'ai réussi.
|
Zzozo Un peu, passionément, à la fol | le is null c'est pas moi qui l'ai suggéré, de rien
Message édité par Zzozo le 14-02-2012 à 15:05:58 --------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
maalicius | en effet, merci à olivthill pour le conseil
|
Oliiii | Ca marche pas ca? :
|
maalicius | Merci pour ta réponse Oliii, Par conter pourquoi tu utilise le JOIN?
|
MEI |DarthPingoo(tm)| | Bosser en PS avec un curseur devrai éviter de parcourir les indexes a chaque ligne à cause du exists peut-être....
Message édité par MEI le 14-02-2012 à 16:50:15 --------------- | AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps | |
MEI |DarthPingoo(tm)| |
--------------- | AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps | |
maalicius | Alors je susi d accord avec toi MEI que le where exists c est un peu bullshit, mnt j ai pensé à utiliser pl/SQL et un curseur et je me suis dit qu il peut y avoir plus simple.
Message édité par maalicius le 14-02-2012 à 17:58:17 |
Zzozo Un peu, passionément, à la fol | les optimiseurs de requêtes des SGBDR sont relativement limités, et on peut vite les envoyer aux "fraises" si on y fait pas gaffe --------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
MEI |DarthPingoo(tm)| |
--------------- | AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps | |
maalicius | rere everybody,
Message édité par maalicius le 15-02-2012 à 09:18:04 |
maalicius | J'ai trouvé une petite solution mais probablement il y a mieux.
|
Zzozo Un peu, passionément, à la fol |
Et je suis d'accord que ça s'en ressent quand les stats sont pas suffisamment à jour Enfin bon, rien ne remplace (encore) un humain bien entrainé Message édité par Zzozo le 15-02-2012 à 20:41:23 --------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
Oliiii | Heu... ya 15ans peut etre ... mais la les optimisateurs tiennent en compte beaucoup plus de choses que les stats. Il y a l'etat du server, la charge CPU, la pression mémoire, les dizaines de parametres, les hints et options, sans parler des queries qui font des fois des pages et des pages avec des dizaines de join dans tout les sens.
|
fred777888999 | Le probleme peut aussi venir de la taille de ton logfile insufisante et d'une transaction du coup trop importante. Un moyen simple en oracle est de traiter par lots en faisant simplement :
Message édité par fred777888999 le 16-02-2012 à 14:11:06 |
Zzozo Un peu, passionément, à la fol |
--------------- « Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle |
MEI |DarthPingoo(tm)| | Déjà faudrait pas confondre tout.
--------------- | AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps | |
Publicité | Posté le |
Sujets relatifs | |
---|---|
[RESOLU]Optimisation d'une requête SQL | [SQL] Optimisation de requete |
[SQL] Optimisation d'une réquète récursive | [SQL] Optimisation de requête "regroupement X-en-1" (tri ?) |
Optimisation de requete PL/SQL | Optimisation d'une requete SQL ?? |
SQL(server) optimisation d'une requête | [SGBD/SQL] Optimisation de requête |
[SQL] Optimisation d'une requete | [SQL] optimisation de requête.... |
Plus de sujets relatifs à : [SQL] Optimisation de requête sql |