Siempre tenemos que mirar nuestra base para cuidar que su crecimiento no sea abrupto, lo peor que nos puede pasar es que las entidades más grandes, sean las que más se consultan y esto suele pasar seguido. Para llevar un control respondamos 3 preguntas:
Cual son los 40 objetos más grande de mi base de datos?
select * from (
select owner, segment_name, bytes/1024/1024 Size_Mb from dba_segments order by
bytes/1024/1024 DESC )
where rownum <= 40
Cual son las 40 tablas más grande de mi base de datos?
select *
from (select segment_name "Table Name",
round(sum(bytes)/1024/1024, 2) "Size MB"
from dba_extents
where segment_type = 'TABLE'
group by segment_name
order by 2 desc)
Cuales son los objetos más accedidos?
SELECT ROWNUM AS RANK, Seg_Lio.*
FROM ( SELECT St.Owner,
St.Obj#,
St.Object_Type,
St.Object_Name,
St.VALUE,
'LIO' AS Unit
FROM V$segment_Statistics St
WHERE St.Statistic_Name = 'logical reads'
AND St.Owner='TN32_UAT'
ORDER BY St.VALUE DESC) Seg_Lio
WHERE ROWNUM <= 15
UNION ALL
SELECT ROWNUM AS RANK, Seq_Pio_r.*
FROM ( SELECT St.Owner,
St.Obj#,
St.Object_Type,
St.Object_Name,
St.VALUE,
'PIO Reads' AS Unit
FROM V$segment_Statistics St
WHERE St.Statistic_Name = 'physical reads'
AND St.Owner='TN32_UAT'
ORDER BY St.VALUE DESC) Seq_Pio_r
WHERE ROWNUM <= 15
UNION ALL
SELECT ROWNUM AS RANK, Seq_Pio_w.*
FROM ( SELECT St.Owner,
St.Obj#,
St.Object_Type,
St.Object_Name,
St.VALUE,
'PIO Writes' AS Unit
FROM V$segment_Statistics St
WHERE St.Statistic_Name = 'physical writes'
AND St.Owner='TN32_UAT'
ORDER BY St.VALUE DESC) Seq_Pio_w
WHERE ROWNUM <= 15
Con el resultado de estas consultas podemos tomar decisiones antes que la base se vuelva lenta.