Escolar Documentos
Profissional Documentos
Cultura Documentos
Siguiente blog
Crear un blog
Acceder
Qu es la PGA?
Las siglas provienen de Program/Private Global Area, y es la memoria privada de cada proceso servidor. En esta memoria cada proceso almacena informacin que slo es necesaria para su propio
funcionamiento como por ejemplo sus variables globales, el estado actual de cada cursor (SQL) que se ejecuta... etc. La PGA se compone de: rea SQL privada: cada SQL que se ejecuta necesita de este espacio para poder llevar el control de las operaciones propias de la sentencia. Se asigna cuando se abre el cursor y se libera completamente cuando se cierra. Esta parte de memoria se subdivide en dos: a) area persistente: perdura durante toda la vida del cursor. Guarda las bind variables adems de otras cosas; b) area en tiempo de ejecucin: se libera cuando finaliza la ejecucin de la sentencia SQL (aunque no se haya cerrado el cursor ). Constituyen las reas de trabajo (working areas) que se explican ms adelante. El nmero mximo de cursores, y por tanto, el nmero mximo de reas SQL privadas, que un usuario puede tener abiertos al mismo tiempo se controla con el parmetro OPEN_CURSORS. Tambin hay que tener en cuenta que esta rea SQL privada se almacena en la PGA si la Instancia est configurada como servidores dedicados (dedicated servers). En caso de servidors compartidos (shared servers) se almacena en la SGA. Memoria de las sesiones: guarda informacin relativa a la sesin como el login, variables de sesin... etc. En servidores compartidos (shared servers) este rea pasa a ser pblica ya que diferentes usuarios comparten los mismos procesos servidores.
La PGA se almacena en la memoria del servidor pero fuera de la SGA. Por tanto, para dimensionar ambas reas hay que tener en cuenta que la suma de las dos no supere los lmites especficos del servidor y la plataforma (tamao mximo memoria RAM, 2 GB en Windows sin /3GB, 3 GB en Windows con /3GB... etc.).
maximum PGA allocated 548391936 bytes total freeable PGA memory 0 bytes process count 343 max processes count 404 PGA memory freed back to OS 0 bytes total PGA used for auto workareas 0 bytes maximum PGA used for auto workareas 78736384 bytes total PGA used for manual workareas 0 bytes maximum PGA used for manual workareas 530432 bytes over allocation count 15599 bytes processed 8,1983E+11 bytes extra bytes read/written 1,4539E+10 bytes cache hit percentage 98,25 percent recompute count (total) 208640 Aggregate PGA target parameter indica el valor del parmetro PGA_AGGREGGATE_TARGET. Aggregate PGA auto target indica la cantidad de PGA que Oracle puede usar como reas de trabajo. Este valor vara en funcin de la carga de trabajo. Total PGA allocated indica el valor total de PGA asignado. Este es el valor que Oracle intenta mantener por debajo de PGA_AGGREGGATE_TARGET. Este valor puede ser ms alto que el indicado por el parmetro de inicializacin en momentos puntuales de mucha carga o de forma constante si PGA_AGGREGGATE_TARGET est pobremente dimensionado. Over allocation count indica el nmero de veces que ha habido que sobrepasar el lmite impuesto por PGA_AGGREGGATE_TARGET, lo que es sntoma de que hay que aumentar el parmetro. Cache hit percentage indica el nmero de veces que se ha podido realizar una operacin intensiva de ordenacin/clasificacin sin incurrir en un "extra pass". Si este valor no es cercano al 100% indica que hay que aumentar el parmetro PGA_AGGREGGATE_TARGET. La vista V$PGA_TARGET_ADVICE es muy til para predecir cmo cambiara el comportamiento de la Instancia si modificamos le valor de PGA_AGGREGATE_TARGET. Para que esta vista recopile informacin el parmetro STATISTICS_LEVEL debe estar configurado a TYPICAL o ALL: SQL> select pga_target_for_estimate, pga_target_factor, estd_pga_cache_hit_percentage,
estd_overalloc_count from v$pga_target_advice; PGA_TGT_FE PGA_TGT_F ESTD_OVRALL_COUNT ---------- ----------32112640 ,125 64225280 ,25 128450560 ,5 192675840 ,75 256901120 1 308281344 1,2 359661568 1,4 411041792 1,6 462422016 1,8 513802240 2 770703360 3 1027604480 4 1541406720 6 2055208960 8 ESTD_HIT_PCTGE -------------- -------------67 67 67 74 97 98 98 98 98 98 98 100 100 100 67303 67303 66960 40785 4652 73 0 0 0 0 0 0 0 0
La columna pga_target_for_estimated indica la estimacin para las que las dems columnas estn dando informacin. La columna pga_target_factor indica la relacin entre el valor de PGA_AGGREGGATE_TARGET actual y el valor de estimacin de esa fila. Cuando este factor est a 1 indica la relacin 1 a 1 -el tamao actual-. Si es 2, es 1 a 2 -el doble-, y si es 0,125 es 1 a 0,125 -una octava parte-. La columna estd_pga_cache_hit_percentage indica el porcentage de xito, operacin resueltas sin "extra pass" para ese pga_target_for_estimated. Por ltimo, la columna estd_overalloc_count indica el nmero de veces que habra que sobrepasar el valor indicado por PGA_AGGREGGATE_TARGET para ese pga_target_for_estimated. Para este caso el valor ptimo sera subir el valor del parmetro 1,4 veces porque nos da una estimacin de 0 "extra passes". Seguir aumentndolo no aportara ninguna mejora. Si estamos justos de memoria y 73 "extra passes" son asumbles se puede empezar aumentndolo 1,2 veces en vez 1,4 y despus de un tiempo de trabajo volver a chequear los valores.
Por ltimo decir que las vistas V$PGASTAT y V$PGA_TARGET_ADVICE guardan informacin de la Instancia en tiempo real. Cuando se reinicia la Instancia estas vistas empiezan a recopilar datos nuevos. Para ver el histrica entre reinicios estn las vistas DBA_HIST_PGASTAT y DBA_HIST_PGA_TARGET_ADVICE respectivamente. Espero que te haya sido til. Por favor, deja tus comentarios, correciones o sugerencias. Juan Lorenzo Arellano Oracle DBA Infor Consult Soluciones www.inforconsult.es Publicado por Juan Lorenzo Arellano en 12:27 Etiquetas: Oracle, ORDER BY, PGA, PGA_AGGREGATE_TARGET, SORT_AREA_SIZE
5 comentarios: Annimo dijo... Fenomenal, claro y conciso. Gracias 26 de septiembre de 2008 10:03 Annimo dijo... Muy bueno. 3 de marzo de 2009 12:17 Sael dijo... Magnfico! ya haba leido rpidamente porque necesitaba algo especfico, y me ayud mucho. El da de hoy lo le todo y me pareci muy completo y de mucha ayuda! 26 de noviembre de 2009 16:35
sergio dijo... perfecto tio 21 de mayo de 2010 18:02 Carlos Mario Toro dijo... Muy buen artculo. Una pregunta? yo podra configurar diferentes tamaos de PGA en una misma instancias y permitir que un grupo de usuarios tome una de ellas y otro grupo otra. 17 de abril de 2011 14:04 Publicar un comentario en la entrada Enlaces a esta entrada Crear un enlace Entrada ms reciente Pgina principal Entrada antigua