| « Tuning SQL : Lo malo de usar UNION en los select :) | Una gran enseñanza de vida , para que no nos quejemos tanto ... » |
Calculando el tamaño actual de la Shared Pool
Me hicieron una consulta con respecto al tamaño actual de la Shared Pool cuando Oracle trabaja con ASMM (Automatic Shared Memory Management) o manejo automático de memoria.
Y el primer pensamiento fue casi instintivo
"Dentro de la gv$parameter2"

mm , pero dando una vuelta al tema, en esa vista aparece la Shared Pool Size en 0 , ¿el porqué? , pues con ASMM 5 buffers de memoria son trabajados de forma automática
DB_CACHE_SIZE
JAVA_POOL_SIZE
STREAMS_POOL_SIZE
LARGE_POOL_SIZE
SHARED_POOL_SIZE
Siempre los mostrará en 0 , ya que internamente el maneja un tamaño en esos buffers total y absolutamente dinámico
La pregunta calza de inmediato ¿Cómo veo el valor actual de la Shared Pool ?, no importanto si tengo o no ASMM
Y añadiendo mas complejidad
¿Cómo obtengo el tamaño de la Shared Pool en una ambiente con ASMM y sin ASMM en versiones Oracle9i, Oracle10g y Oracle11g? CON EL MISMO SCRIPT???
Pues aca esta el ensayo de esa pequeña problemática
SI sga_target > 0 ENTONCES
Valor actual dentro de la SGA
select name ,
bytes/1024/1024 MB
from v$sgainfo
where upper(name) like '%SHARED POOL SIZE%'
Válido para : Oracle10g , Oracle11g
No válido para : Oracle9i
o
Valor actual del parámetro , como resize del MMAN y MMON
select component ,
current_size/1024/1024 MB
from v$sga_dynamic_components
where component like '%shared pool%'
Válido para : Oracle9i , Oracle10g , Oracle11g
0
Esta forma de consultar la shared pool , es la mas interna ya que no pasamos por ninguna vista del diccionario de datos
select b.ksppinm "Parametro re-oculto",
a.KSPFTCTXVL "Bytes",
a.KSPFTCTXDVL "Mb"
from X$KSPPCV2 a ,
x$ksppi b
where b.indx + 1 = a.kspftctxpn
and b.KSPPINM like '__shared_pool_size'
Válido para : Oracle10g , Oracle11g
No válido para : Oracle9i
o
Ejecutando el comando CREATE PFILE FROM SPFILE
Y dentro del init creado , buscar el parámetro __shared_pool_size
SQL> CREATE PFILE FROM SPFILE;
Válido para : Oracle10g , Oracle11g
No válido para : Oracle9i
SINO SI sga_target = 0 ENTONCES (con y sin bajada de instancia)
Valor actual dentro de la SGA
select name ,
bytes/1024/1024 MB
from v$sgainfo
where upper(name) like '%SHARED POOL SIZE%'
Válido para : Oracle10g , Oracle11g
No válido para : Oracle9i
o
Valor actual del parámetro , como resize del MMAN y MMON
select component ,
current_size/1024/1024 MB
from v$sga_dynamic_components
where component like '%shared pool%'
Válido para : Oracle9i , Oracle10g , Oracle11g
0
Esta forma de consultar la shared pool , es la mas interna ya que no pasamos por ninguna vista del diccionario de datos
select b.ksppinm "Parametro re-oculto",
a.KSPFTCTXVL "Bytes",
a.KSPFTCTXDVL "Mb"
from X$KSPPCV2 a ,
x$ksppi b
where b.indx + 1 = a.kspftctxpn
and b.KSPPINM like '__shared_pool_size'
Válido para : Oracle10g , Oracle11g
No válido para : Oracle9i
o
Mediante el parámetro seteado en el archivo de inicialización
SELECT value/1024/1024||' [MB]' alias_shared_pool_size
FROM gv$parameter2
WHERE name = 'shared_pool_size'
AND value <> '0'
Válido para : Oracle9i , Oracle10g , Oracle11g
FIN SI.
Saquen ustedes sus propias conclusiones para obtener ese maldito valor ![]()
![]()
![]()
07.08.09. 16:23:44. 562 words, 2372 views. Categories: Tuning / Performance , Leave a comment » • Send a trackback »
Trackback address for this post
Trackback URL (right click and copy shortcut/link location)
Feedback awaiting moderation
This post has 39 feedbacks awaiting moderation...