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 :
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 ?
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
Dans le cas du premier package, exécuté 2092365741 foiset chargé 338 fois, quel serait le gain de performance ?
D'avance merci de vos lumières !
Partager