|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2005 Messages : 59 ![]() |
Bonjour,
Je travaille sur des bases ORACLE 10i. Dans mon script d'extraction, j'ai rajouté cette requête SQL. Code :
Les indexs des tables sont : SFAC_CLIPRES => ID_SFAC_CLIPRES CLIPRES => ID_CLIPRES, NO_CONTRAT_PRESTATION SIMPRES => ID_SIMPRES Je ne peux effectuer aucune action sur la structure des tables. Voici ce que j'ai récupéré en exécutant un explain plan de la requête sous sql/developer : Code :
|
||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Filtrer SFAC_CLIPRES dans la sous-requête avant d'évaluer RANK peut aider même si oracle semble déjà avoir poussé les filtres.
Mais de toute façon la requête est fausse car il faut trier avant de filtrer avec ROWNUM. Code :
|
||
|
|
10
|
|
|
#3 | ||
|
Membre expérimenté
![]() Mohamed HouriInscription : mars 2010 Messages : 286 ![]() |
Bonjour,
Une étape importante lors de l'optimisation d'une requête est la génération de son explain plan accompagné toujours de la partie "predicate''. Et, pour que cet explain plan soit lisible et exploitable, il faut que l'indentation entre les différentes opérations exécutées par Oracle (Cost Based Optimizer) soit fidèlement reproduite. Donc, si vous voulez une aide générez alors l'explain plan de votre requête en suivant les étapes de l'exemple suivant: Code :
|
||
|
|
10
|
|
|
#4 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2005 Messages : 59 ![]() |
Merci pour ta réponse.
Je ne savais qu'il fallait faire une restriction sur le Rownum obligatoirement après un ORDER BY. J'ai exécuté ta requête, j'obtiens un temps de 45min (j'ai augmenté le nombre de données à extraire). Lorsque j'exécuté cette requête, le temps est de 35 minutes. Code :
Déjà le temps a bien amélioré, on est passé de 48 à 35minutes. Je suis désolé, je n'ai pas accès à SQL+, seulement à SQLDevelopper |
||
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
|
|
|
00
|
|
|
#6 | ||
|
Membre expérimenté
![]() Mohamed HouriInscription : mars 2010 Messages : 286 ![]() |
L'index sur la table sfac_clipres semble n'être d'aucune utilité. Essayer plutôt de créer les indexes suivants :
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com