Bonjour à tous,

Une application que je dois aider à optimiser produit énormément de requêtes sans bind variables.

Du coup la Shared_Pool s'en trouve toute malmenée je pense, au vu des retours de la requête ci-dessous :
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
SELECT   SUBSTR (owner, 1, 10) || '.' || SUBSTR (name, 1, 35) "Object Name",
              ' Type: '
           || SUBSTR (TYPE, 1, 12)
           || ' size: '
           || sharable_mem
           || ' execs: '
           || executions
           || ' loads: '
           || loads
           || ' Kept: '
           || kept
    FROM   v$db_object_cache
   WHERE   TYPE IN ('TRIGGER', 'PROCEDURE', 'PACKAGE BODY', 'PACKAGE')
           AND executions > 0
ORDER BY   executions DESC, loads DESC, sharable_mem DESC
 
V500.A_PACKAGE                     Type: PACKAGE BODY size: 32531 execs: 2092365741 loads: 338 Kept: NO
SYS.STANDARD                                    Type: PACKAGE BODY size: 29548 execs: 345901737 loads: 1 Kept: NO
SYS.DBMS_SESSION                                Type: PACKAGE BODY size: 12560 execs: 122780504 loads: 1 Kept: NO
V500.A_PROCEDRE                       Type: PROCEDURE size: 4193 execs: 110808565 loads: 1191 Kept: NO
V500.A_TRIGGER                          Type: TRIGGER size: 6238 execs: 24575548 loads: 449 Kept: NO
Pour évaluer l'impact (j'espère très positif) de pinner certains objets dans la shared_pool pourriez-vous m'indiquer comment déterminer le temps qu'Oracle prend pour le charger dans la Shared_Pool ?

Dans le cas du premier package, exécuté 2092365741 fois et chargé 338 fois, quel serait le gain de performance ?

D'avance merci de vos lumières !