En esta entrada de blog os pongo un par de consultas SQL que van perfectas para sacar el tamaño de los segmentos de ORACLE. Es ideal sobretodo para versiones anteriores a la 10G.
Tamaño de los segmentos por búsqueda concreta de segmento …
select initial_extent/1024/1024, next_extent/1024/1024, extents from dba_segments where segment_name like '%cadena_busqueda%'
Fragmentación de la Base de datos a nivel de extensiones … (Muestra los que tengan más de 5 extensiones).
REM FRAGMENTACIÓN DE LA BASE DE DATOS. REM Obtiene el número de extensiones de los objetos de la base de datos REM y el número máximo a las que pueden llegar. spool extents.lst set pagesize 66 clear break clear columns ttitle off break on TABLESPACE skip 3 on TIPO skip 1 column EXTENTS format 999 column MAX_EXTENTS format 999 column NOMBRE format A21 column TIPO format A9 column TABLESPACE format A13 column PROPIETARIO format A13 column today new_value _date noprint SELECT sysdate today FROM dual; ttitle center 'Fragmentación de la Base de Datos' skip 1 - center &_date skip 1 - right 'Pág.: ' format 999 sql.pno skip 2 REM Extrae los objetos de DB que tienen más de 5 extents. SELECT tablespace_name TABLESPACE, segment_type TIPO, segment_name NOMBRE, owner PROPIETARIO, extents EXTENTS, max_extents MAX_EXTENTS FROM sys.dba_segments WHERE extents > 5 ORDER BY tablespace_name,segment_type,segment_name,owner; spool off