Bonjour,
J'ai une requête qui utilise du PL/SQL du genre :
qui s'execute correctement (d'un point vu temps d'execution).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT TH.LIBELLE , QUES.LIBELLE , PACKAGEPLSQL.function (BTH.IDTH) ColPLSQL, TH.IDTH FROM BTH, TH, QUES WHERE TH.IDTHREF = BTH.IDTH AND TH.NIQUEST = QUES.NIQUEST AND ( BTH.DATEVALEUR >= 201307011503 AND BTH.DATEVALEUR <= 201307051503 )
Je voudrais maintenant ajouter un filtre sur le resultat de mon package PL/SQL
J'ai essayé comme ça
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT TH.LIBELLE , QUES.LIBELLE , PACKAGEPLSQL.function (BTH.IDTH) ColPLSQL, TH.IDTH FROM BTH, TH, QUES WHERE TH.IDTHREF = BTH.IDTH AND TH.NIQUEST = QUES.NIQUEST AND ( BTH.DATEVALEUR >= 201307011503 AND BTH.DATEVALEUR <= 201307051503 ) AND PACKAGEPLSQL.function (BTH.IDTH) = 0
comme ca
Et dans les deux cas j'ai des temps de réponse catastrophique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT * FROM ( SELECT TH.LIBELLE , QUES.LIBELLE , PACKAGEPLSQL.function (BTH.IDTH) ColPLSQL, TH.IDTH FROM BTH, TH, QUES WHERE TH.IDTHREF = BTH.IDTH AND TH.NIQUEST = QUES.NIQUEST AND ( BTH.DATEVALEUR >= 201307011503 AND BTH.DATEVALEUR <= 201307051503 ) ) WHERE ColPLSQL = 1
J'ai essayé dans le deuxième cas d'ajouter des HINT du genre NO_QUERY_TRANSFORMATION et ca n'arrange rien.
Je commence a etre a court d'idée. Vous comprenez ce qui ne vas pas ? Ce que je pourrais tenter. Je trouve absurde de faire ce test en dans l'application plutot que dans la requete et pourtant c'est ce qui semble le plus efficae.
Merci,
FJJ
Partager