Bonjour,
au cours de l'execution d'une requete complexe (nombreuses sous requetes, UNION ALL) sur de grosses tables, je recois l'erreur (8.1.7.4):
ORA-04030: out of process memory when trying to allocate 279552 bytes (cursor work heap,kllcqas:kllsltba)
En monitorant la PGA pendant la requete, il apparait qu'elle gonfle jusqu'a ~1 GB(!) atteignant alors la limite systeme, d'ou l'erreur. Les parametres SORT_AREA_SIZE, HASH_AREA_SIZE et autres de la PGA sont tous autour de 4MB.
Sachant qu'il ya bcp de HASH Join dans ma requete, j'ai diminue le parametre HASH_AREA_SIZE,la PGA gonfle bcp moins et je n'ai plus d'erreur.
Maintenant, je ne comprends toujours pas bien pourquoi la PGA gonfle de cette maniere. Qu'en est t'il des parametres SORT_AREA_SIZE, HASH_AREA_SIZE et autres.. qui ne devraient dans la session pas etre depassés? Ou bien es ce plutot que chaque SELECT de la requete (inline view, sous requete...) a sa zone propre controllee par les parametres?
Partager