Bonjour,
J'ai consulté récemment sur le site de Burleson Consulting un article sur la dimension de la PGA et je voulais votre avis.

Voici sa démarche pour un serveur Windows :
- Dans un premier temps il note la mémoire dont il dispose : 1,25Go
- Il considère la consommation de l'OS à 20% de la RAM
- Il récupère deux valeurs : sort_area_size (espace utilisé pour le tri des requêtes) et hash_area_size (espace utilisé pour les jointures de hachage) grâce à la commande suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SQL> show parameters area_size
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------
bitmap_merge_area_size               integer     1048576
create_bitmap_area_size              integer     8388608
hash_area_size                       integer     1048576
sort_area_size                       integer     524288
workarea_size_policy                 string      MANUAL
- Pour calculer la PGA d'un utilisateur connecté il fait simplement : 1Mo + sort_area + hash_area

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
 
column pga_size format 999,999,999
 
select
    1048576+a.value+b.value   pga_size
from
   v$parameter a,
   v$parameter b
where
   a.name = 'sort_area_size'
and
   b.name = 'hash_area_size'
;
 
PGA_SIZE
------------
   2,621,440
- Pour finir il indique que la taille de la PGA est calculée en multipliant cette valeur par le nombre d'utilisateurs connectés.

Total RAM on Windows Server = 1250 MB

Total PGA regions for 100 users = 250 MB
RAM reserved for Windows (20 %) = 250 MB

RAM for SGA & buffers = 750 MB
Je ne sais pas trop quoi en penser, ça vous parle ?

Merci.