|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
salut à tous,
Voilà j'ai une autre requête que je voudrais optimiser : Code :
- le premier avec (status ,FLAG_EQUILIBRE) - le second avec (substr(LIGNE_ME,1,16)) et sur tab2 : - un index sur (CLIENT ). Qu'est ce que vous en pensez? |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() |
Pourquoi cette requête sur DUAL ?
Code :
Ça dépend de vos données.
__________________
Email : http://scr.im/waldar |
||
|
01
|
|
|
#3 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Merci pour le "greatest" je ne connaissais pas!!
Sinon, la table tab1 et tab2 ont plus de 1 millions de lignes (tab1 varie de 200 000 jusqu'à 2,5 millions et la table tab2 ne varie pas trop 1,4 millions ) |
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() Nicolas Inscription : janvier 2011 Messages : 378 ![]() |
A ma connaissance il oracle utilise 1 index par table et par requête. Tu peux vérifier le plan d'exécution dans Toad.
Mais à priori un index avec les 3 champs est peut être mieux, si oracle l'utilise. Par contre il ne vaut mieux pas mettre d'index sur FLAG_CLIENT et FLAG_LIGNE car je pense que ça serait pénalisant. |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Comment je pourrais voir le plan d’exécution de la requête dans toad?
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 437 ![]() |
Attention Waldar, ton code n'est pas identique, tu ne gères pas les NULL
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
10
|
|
|
#7 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Merci, mais Les FLAG ne sont jamais à NULL, ni les Variables w_...
Très bonne remaque sinon!!
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 437 ![]() |
Dans Toad, c'est l'icône de l'ambulance. Tu surlignes ta requête et tu cliques sur l'ambulance (ou menu Database / Optimize / Explain Plan).
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Merci c'est bon j'ai trouvé comment la faire.
Mais dans la requête j'ai : et mon index est sur substr(Ligne,1,1), mais le problème c'est qu'il n'utilise pas l'index si dans le where j'ai '<>' au lieu de '='!! Y a t il moyen de faire autrement? |
|
|
00
|
|
|
#10 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
T'as combien de ligne avec G par rapport au nombre de lignes totales ? Parce que si tu ramènes beaucoup de lignes, c'est normal qu'Oracle n'utilise pas l'index, ce serait une perte de temps
Sinon, pour mon info Citation:
|
|
|
|
00
|
|
|
#11 | ||
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
bonjour,
et bien j'ai enormement de requêtes avec Sinon pour le nombre de lignes, en général ce sont les 'G' qui dominent! Voici un des requêtes que je voudrais optimiser : Code :
|
||
|
|
00
|
|
|
#12 | ||
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Une autre requête qui prend 5 min sur 2 millions de lignes :
Code :
|
||
|
|
00
|
|
|
#13 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Faudrait une trace pour savoir où le temps passe
|
|
|
00
|
|
|
#14 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
trace sur toad? sqlplus?
|
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
il serait interessant que vous postiez les plans d'execution de vos requetes, ainsi que le descriptif complet de vos indexes.
Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#16 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Si vous pouviez m'aider pour le faire.
J'ai cherché et trouvé comment faire un plan d’exécution de ma requête, mais pourriez vous me dire quelles champs afficher de la table PLAN_TABLE? |
|
|
00
|
|
|
#17 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Merci de faire une recherche dans les tutos, tout y est expliqué
|
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Au moins les ordres de creation de vos indexes, cela permettra de comprendre un peu ce qui se passe... Le plan d'execution serait le top, car il permettra de verifier les differentes suppositions.
Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#19 | ||
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Voilà :
Code :
|
||
|
|
00
|
|
|
#20 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
et vous avez des indexes de créés ??
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com