Boa tarde gurus.

Senhores, num cliente (10gR2) tive a seguinte experiência: um processo efetua 
leituras e alterações de dados fazendo uso de índices com tempo de resposta 
satisfatório. Num determinado momento e a partir de uma solicitação, esse mesmo 
aplicativo executa a exclusão de todas as linhas da tabela (não sei se via 
TRUNCATE ou DELETE - provavelmente TRUNCATE) e depois INSERT de milhares de 
registros.

Aparentemente após a exclusão de todas as linhas dessa tabela o RDBMS Oracle 
atualizou automaticamente as estatísticas da mesma, já que todas as consultas 
posteriores a exclusão de dados e INSERT de milhares de linhas, sempre são 
feitas via FULL SCAN. Caso eu faça um UPDATE STATISTICS nessa tabela, as 
consultas voltam a utilizar os índices.

Dito tudo isso, vamos as perguntas: 
1) é correto afirmar que existe uma atualização automática no caso de se 
excluir todas as linhas de uma tabela? 
2) alguém saberia dizer se isso tem a ver com o comando TRUNCATE ou independe 
da forma de exclusão (DELETE)?
3) alguém poderia, por favor, detalhar um pouco mais isso (atualização 
automática de estatísticas no caso de exclusão de todos os registros de uma 
tabela) ou fornecer uma URL onde eu possa me informar? Já procurei e não 
encontrei essa informação...

Desde já, muitíssimo obrigado!

Luiz Fernando

Responder a