Bonjour,
J'ai un problème bizarre avec un progiciel sur une requête qui utilise une bind variable. La requête est en elle-même assez simple, sur une table de 1,7 millions de lignes :
Par contre, malgré des stats à jour et la présence d'un index sur DOC_ID le plan d'exécution est catastrophique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Pour invalider le plan d'exécution, je fais une opération de type DDL sur la table (REVOKE ou GRANT) et là je me retrouve avec un plan d'exécution correcte sur ce SQL ID :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Problème : au bout d'un certain temps (genre le lendemain), il me refait le coup du plan d'exécution foireux. C'est particulièrement gênant car ca sollicite le disque, et le progiciel n'arrête pas d'utiliser cette requête qui met 1 min à s'exécuter. Existe-t-il une façon de forcer le plan d'exécution mis à part le hint (car je n'ai pas la main sur le progiciel) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
Mon environnement :
- Windows 2003 Server
- Oracle 10.2.0.4 32 bits, Enterprise Edition

 

 
		
		 
        

 
			
			


 
   


 Plan d'exécution avec un bind variable
 Plan d'exécution avec un bind variable
				 Répondre avec citation
  Répondre avec citation 
			 
 


 Envoyé par farenheiit
 Envoyé par farenheiit
					
 en fait j'ai entre 1 à 30 DOC_ID identiques dans cette table de 1,7 millions de lignes pour un nbre total de 102727 DOC_ID distinct
 en fait j'ai entre 1 à 30 DOC_ID identiques dans cette table de 1,7 millions de lignes pour un nbre total de 102727 DOC_ID distinct
Partager