Bonjour à tous,
étant donné que found_rows ne fonctionne plus sous 10g, existe-t-il un équivalent ?
Merci d'avance
Bonjour à tous,
étant donné que found_rows ne fonctionne plus sous 10g, existe-t-il un équivalent ?
Merci d'avance
Je ne pense pas que je comprend, peux tu donner quelques détails.
En fait j'avais besoin de connaitre le nombre de résultat d'une requête.
J'ai utilisé une fonction analytique qui a des perfs corrects.
S'il existe qq chose de mieux je suis preneur
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 SELECT * FROM ( SELECT DISTINCT TA.icone_type_agence, TA.Nom_type_agence, AG.id_presto, AG.id_agence, AG.raison_social_agence, AG.code_postal_agence, AG.ville_agence, AG.password_agence, AG.telephone_agence, SL.icone_statut_logiciel, SL.nom_statut_logiciel, LG.nom_logiciel, ROW_NUMBER() OVER (ORDER BY AG.id_presto) num, count(*) OVER() count_annonce FROM TYPE_AGENCE TA, AGENCE AG, AGENCE_REMONTEE AR, STATUT_LOGICIEL SL, LOGICIEL LG WHERE TA.id_type_agence = AG.id_type_agence AND AG.id_presto = AR.id_presto(+) AND AG.id_logiciel = LG.id_logiciel AND LG.id_statut_logiciel = SL.id_statut_logiciel AND AG.id_statut_agence > -1 ) WHERE num BETWEEN 1 AND 10![]()
Hm, essayez avec une table plus grande et dit moi si les perfs restent toujours correcte.
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
16
17
18
19
20
21
22
23
24
25
26 Connecté à : Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production JServer Release 9.2.0.5.0 - Production SQL> set timing on SQL> Select count(*) 2 From big_table; COUNT(*) ---------- 1052736 Ecoulé : 00 :00 :09.99 SQL> l 1 Select * From( 2 Select t.*, count(*) over() 3 from big_table t 4 ) 5* Where rownum < 10 ... 9 ligne(s) sélectionnée(s). Ecoulé : 00 :01 :10.11
C'est juste une idée, mais peut-être quelque chose de la forme suivante :
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 (select count(*) FROM TYPE_AGENCE TA, AGENCE AG, AGENCE_REMONTEE AR, STATUT_LOGICIEL SL, LOGICIEL LG WHERE TA.id_type_agence = AG.id_type_agence AND AG.id_presto = AR.id_presto(+) -- C'est mal ! AND AG.id_logiciel = LG.id_logiciel AND LG.id_statut_logiciel = SL.id_statut_logiciel AND AG.id_statut_agence > -1) found_row, ... -- le reste du select AND rownum < 10
Partager