No Oracle nós temos o otimizador
baseado em regra, que é o mais antigo e hoje na versão 10g nem é mais
suportado, eo o basedo em custo. Esse último necessita de estatísticas
geradas nos objetos, pois é baseado nelas que ele gera os planos de
execução e quanto mais atualizadas elas estiverem teoricamente melhor
serão os planos de execução gerados.
O script abaixo cria um job usando a dbms_job que gera estatíticas para um schema todos os dias as 3 da manhã:
O script:
declare
l_job number;
begin
dbms_job.submit(
l_job,
'dbms_stats.gather_schema_stats( ''SCOTT'' );',
trunc(sysdate)+1+3/24,
'trunc(sysdate)+1+3/24' );
end;
/
Explicando o start time e o interval:
trunc(sysdate)
pega o dia atual a meia noite (00:00)
trunc(sysdate)+1
Adiciona um dia quer dizer amanhã meia noite
trunc(sysdate)+1+3/24
Adiciona 3 horas (3/24) o que quer dizer que o job vai rodar pela primeira vez amanhã as 03:00 e nos dias subsequentes nesse mesmo horário.
O script abaixo cria um job usando a dbms_job que gera estatíticas para um schema todos os dias as 3 da manhã:
O script:
declare
l_job number;
begin
dbms_job.submit(
l_job,
'dbms_stats.gather_schema_stats( ''SCOTT'' );',
trunc(sysdate)+1+3/24,
'trunc(sysdate)+1+3/24' );
end;
/
Explicando o start time e o interval:
trunc(sysdate)
pega o dia atual a meia noite (00:00)
trunc(sysdate)+1
Adiciona um dia quer dizer amanhã meia noite
trunc(sysdate)+1+3/24
Adiciona 3 horas (3/24) o que quer dizer que o job vai rodar pela primeira vez amanhã as 03:00 e nos dias subsequentes nesse mesmo horário.
Nenhum comentário:
Postar um comentário