« ¿Qué es un INDEX SKIP SCAN?Volver a empezar .... »

Graficar información de crecimiento de tablespaces



Siempre estamos pensando el como obtenemos información de crecimiento de un tablespaces, algo así como para saber mes a mes o semana a semana como ha crecido .


Pues bien, existe una forma muy útil que les paso a comentar...


Lo primero que debemos tener en cuenta es desde que fecha a que fecha queremos generar la información , para ello ocupamos la información de los Snapshots que ha producido nuestra base de datos mediante la siguiente consulta.

select instance_number , snap_id ,
to_char(begin_interval_time,'dd-mm-yyyy hh24:mi:ss') "Intervalo inicio",
to_char(end_interval_time,'dd-mm-yyyy hh24:mi:ss') "Intervalo termino" ,
snap_level
from dba_hist_snapshot
order by snap_id asc


Desde acá debemos obtener los snap_id de inicio y término , para el caso de ejemplo que desarrollamos pues tomaremos el mes completo de Noviembre del 2012.

Además de lo anterior, incorporamos el número del tablespaces, está información la podemos obtener desde la siguiente consulta

select ts# , name from v$tablespace


Ejecutamos la siguiente consulta que trae los datos que necesitamos para saber el crecimiento semana a semana de nuestro tablespaces..

select max(vt.NAME) "Nombre tablespace" ,
to_char(to_date(tb.rtime,'mm-dd-yyyy hh24:mi:ss'),'yyyy-ww') "Fecha de la muestra",
max(round(tb.tablespace_size * dt.block_size/1024/1024/1024,2)) "Tamaño GB",
max(round(tb.tablespace_usedsize * dt.block_size/1024/1024/1024,2)) "Tamaño usado GB"
from SYS.WRH$_TABLESPACE_SPACE_USAGE tb ,
v$tablespace vt ,
dba_tablespaces dt
where vt.TS# = tb.tablespace_id
and vt.NAME = dt.tablespace_name
and vt.ts# = 0
and tb.snap_id <= 123450
and tb.snap_id >= 103947
group by to_char(to_date(tb.rtime,'mm-dd-yyyy hh24:mi:ss'),'yyyy-ww')
order by 3


Ciertas cosas a tener en cuenta :

- Los datos que aparecen en la tabla SYS.WRH$_TABLESPACE_SPACE_USAGE relacionados a espacios , son presentados como número de bloques, por ende hay que realizar la multiplicación con el tamaño del bloque que le corresponde a cada tablespaces.

- En la consulta realizamos el filtro por el número del tablespace, específicamente el campo vt.ts#

- La tabla SYS.WRH$_TABLESPACE_SPACE_USAGE forma parte de la vista dba_hist_tbspc_space_usage , la información de la vista es similar a la información de la tabla , pero tiene otros filtros asociados a los snap_id

- La información del tamaño del tablespace y de su tamaño utilizado se expresa por semanas


Una vez ejecutada la consulta obtenemos los datos para poder armar un gráfico..


Y el gráfico, una vez construído con Excel o hasta con Open Office :) , quedaría así...


Se puede apreciar que por cada semana , se ve en el gráfico el tamaño del tablespace versus el tamaño realmente utilizado, con ello podemos analizar si llevamos a cabo una asignación de espacio, quizás sea conveniente verificar los niveles de fragmentación, también reasignar espacio para tablespaces con mucho espacio libre , etc , etc...

Para tomar medidas hay que estar informado :>>

by Ligarius
20.12.12. 11:14:44. 509 words, 5927 views. Categories: Base de datos ,