Boa noite Leonardo,
Já tem bastante respostas, creio que vc já percebeu que tem mais de uma
abordagem para a sua dúvida.
Bem, já que é por aí, veja como eu identificaria a necessidade de alguma
atitude de organização:
--Verificar as estatisiticas coletadas na base
select count(*), trunc(last_analyzed)
from user_tables
group by trunc(last_analyzed)
order by 1;
COUNT(*) TRUNC(LAS
---------- ---------
1 01-DEC-14
1 10-SEP-14
1 01-OCT-14
1 21-NOV-14
1 16-JUN-14
1 13-AUG-14
1 27-AUG-14
1 02-SEP-14
1 08-NOV-14
1 15-NOV-14
1 15-SEP-14
1 09-SEP-14
1 25-SEP-14
1 04-JUL-14
1 01-SEP-14
1 23-JUL-14
1 06-SEP-14
1 09-JUN-14
1 25-JUL-14
1 10-OCT-14
1 01-JUL-14
1 31-OCT-14
1 29-AUG-14
1 12-AUG-14
1 05-SEP-14
1 21-OCT-14
1 18-JUL-14
1 18-AUG-14
1 08-AUG-14
1 11-JUL-14
1 13-OCT-14
1 13-JUN-14
2 19-NOV-14
2 06-OCT-14
2 16-JUL-14
2 29-OCT-14
2 28-JUL-14
2 31-JUL-14
2 07-OCT-14
2 16-OCT-14
2 03-OCT-14
2 05-AUG-14
2 18-NOV-14
2 08-JUL-14
2 23-OCT-14
2 17-SEP-14
2 07-AUG-14
2 24-JUL-14
3 15-AUG-14
3 01-AUG-14
3 04-AUG-14
3 12-DEC-14
3 17-OCT-14
3 15-JUL-14
4 03-NOV-14
4 28-NOV-14
4 13-DEC-14
4 25-NOV-14
4 11-AUG-14
5 14-JUL-14
5 08-SEP-14
5 09-DEC-14
5 03-DEC-14
6 06-DEC-14
6 02-OCT-14
6 05-DEC-14
6 10-DEC-14
7 13-NOV-14
8 07-JUL-14
8 10-NOV-14
9 27-NOV-14
9 04-NOV-14
10 08-DEC-14
11 11-DEC-14
11 02-DEC-14
13 12-NOV-14
14 26-NOV-14
15 04-DEC-14
18 23-JUN-14
21 25-JUN-14
27 24-NOV-14
30 15-DEC-14
32 15-OCT-14
45 24-JUN-14
49 07-JUN-14
60
93 14-OCT-14
119 06-JUN-14
1325 05-JUN-14
89 rows selected.
--Observe que as estatísticas estão antigas para as tabelas acima, uma coleta
de estatísticas é recomendada neste cenário com o seguinte script:
exec dbms_stats.gather_schema_stats( -
ownname=>'&SCHEMA_NAME', -
METHOD_OPT=>'FOR ALL INDEXED COLUMNS SIZE SKEWONLY', -
CASCADE=>TRUE, -
ESTIMATE_PERCENT=>100);
--Após atualizar as estatísticas, procure fragmentação com este script:
--> mais de 10%, indica-se uma "desfragmentação" adicional
select table_name, num_rows, chain_cnt, (chain_cnt*100/num_rows) pct,
empty_blocks, blocks
from user_tables
where chain_cnt > 0;
--O que é fragmentação no Oracle e quando efetuar manutenção:
http://www.dba-oracle.com/t_table_fragmentation.htm
--Aqui vai um link com exemplos bem claros do mestre Eduardo Legatti
http://eduardolegatti.blogspot.com.br/2008/06/reorganizando-o-tablespace.html
http://eduardolegatti.blogspot.com.br/2008/06/reorganizando-o-tablespace.html
Ederson Elias
DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0
------------ Labor improbus omnia vincit