Bonjour,
Les risque d'une fragmentation de la shared pool en terme de performance est une contention sur les latch. Cette fragmentation est généralement du à des requêtes "littérales" et/ou peu d'utilisation de traitements stockés, et/ou une mémoire sous dimensionnée.
Pourriez-vous m'aider quant à la compréhension de la requete suivante :
View sample listing
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
31
32
33
34
35
36
37
38 select decode( sign(ksmchsiz - 812), -1, (ksmchsiz - 16) / 4, decode( sign(ksmchsiz - 4012), -1, trunc((ksmchsiz + 11924) / 64), decode( sign(ksmchsiz - 65548), -1, trunc(1/log(ksmchsiz - 11, 2)) + 238, 254 ) ) ) bucket, sum(ksmchsiz) free_space, count(*) free_chunks, trunc(avg(ksmchsiz)) average_size, max(ksmchsiz) biggest from sys.x_$ksmsp where inst_id = userenv('Instance') and ksmchcls = 'free' group by decode( sign(ksmchsiz - 812), -1, (ksmchsiz - 16) / 4, decode( sign(ksmchsiz - 4012), -1, trunc((ksmchsiz + 11924) / 64), decode( sign(ksmchsiz - 65548), -1, trunc(1/log(ksmchsiz - 11, 2)) + 238, 254 ) ) )
D'après moi :BUCKET FREE_SPACE FREE_CHUNKS AVERAGE_SIZE BIGGEST
---------- ---------- ----------- ------------ ----------
0 166344 3872 42 72
1 32208 374 86 96
4 928 1 928 928
6 11784 4 2946 3328
BUCKET --> paquet représentant la requête traitée
free_space --> total des fragments libres (ksmchsiz)
free_chunks --> la fragmentation ???
average_size --> taille moyenne des fragments libres
biggest --> plug gros fragment libre
La requete identifiée par le bucket 0 souffre d'une grosse fragmentation...
Qu'est que cela signifie au niveau de la shared pool ?
D'autre part cette analyse se situe a quel niveau dans le cycle d'exécution d'une requête SQl (parse - execute - fetch)
Merci de votre aide
http://www.ixora.com.au/scripts/pool...ool_free_lists
src : shared_pool_free_lists.sql
Partager