Bonjour,
J'effectue en PLSQL 12.1.0.2 des fetch bulk limit dans des tableaux mémoire d'enregistrements en vue de traitement.
Le nombre d'enregistrements à traiter étant important je fetche par paquet de 100.000 (bulk limit 100.000).
Mais le temps d'allocation de la mémoire nécessaire semble long car un traçage par TKPROF montre un temps de fetch très long par rapport au parse et execute.
parse.elapsed=1, execute.elapsed=1, fetch.elapsed=2000.
Je cherche donc à pré-reserver de la mémoire.
Il me semble que le tableau est stocké dans la UGA / PGA de l'utilisateur.
La base est largement pourvue en PGA.
Mes deux questions sont:
1/ Si comme je le pense la UGA est bien le siège de mon tableau, est-il possible de pré-allouer de la mémoire à cette zone ? (uga_cache?)
2/ Quel statistique de session pourrais-je surveiller pour diagnostiquer la raison de la lenteur du fetch ? (Je pense par exemple au temps de lecture sur disque que je maîtrise mal)
En espérant me faire comprendre.
Pozzo
Partager