› Fóruns › Banco de dados Oracle › Problema ao executar JOB
- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 15 anos, 8 meses atrás por
Ishii.
-
AutorPosts
-
29 de setembro de 2010 às 1:01 am #96331
souza
ParticipanteSrs,
Tenho esse job que faz coleta de estatísticas , porém não está funcionando. Se rodo o dbms_stats.gather_schema_stats na mão está funcionando , porém via banco não.Alguém tem alguma sugestão :
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => ‘begin
dbms_stats.gather_schema_stats(ownname=> ”OWNER” , cascade=> TRUE);
end;
‘
,next_date => to_date(’27/09/2010 19:30:00′,’dd/mm/yyyy hh24:mi:ss’)
,interval => ‘TRUNC(SYSDATE+1)’
,no_parse => TRUE
);
SYS.DBMS_OUTPUT.PUT_LINE(‘Job Number is: ‘ || to_char(x));
END;
/commit
Desde já obrigado
Eduardo29 de setembro de 2010 às 3:18 am #96332Ishii
ParticipanteOlá,
Qual a versão do Oracle? Se for 10g ou superior, sugiro utilizar o DBMS_SCHEDULER que tem mais opções que o Job e um log melhor também.
No mais verifique o paramêtro job_queue_processes qual o valor setado e compare com quantidade de linhas em:
select * from dba_jobsSe você tiver mais Jobs que o parâmetro deve mudá-lo para um valor adequado. Porém volto a recomendar o DBMS_SCHEDULER se a versão do Oracle for 10g ou superior.
No seu caso o código ficaria assim:
begin
DBMS_SCHEDULER.create_job ( job_name => 'GATHER_STAT',
job_type => 'STORED_PROCEDURE',
job_action => 'dbms_stats.gather_schema_stats(ownname=> ''OWNER'' , cascade=> TRUE',
start_date => SYSTIMESTAMP,
repeat_interval => 'freq=daily; interval=1; bymonthday=1; byhour= 19; byminute=30',
end_date => NULL,
enabled => TRUE,
comments => 'Job de Coleta de Estatisticas);
end;
Com isso você pode consultar nas views user_scheduler* onde o job_name for GATHER_STAT. Enjoy!!!
[]s Ishii
29 de setembro de 2010 às 5:26 pm #96334souza
Participantee se tiver usando o 9i posso utilizar tb ? ou devo utilizar o que postei ?
desde ja obrigado
eduardo30 de setembro de 2010 às 7:07 am #96346Ishii
ParticipanteOlá,
Como eu disse, somente se a versão do Oracle for 10g ou superior. O DBMS_SCHEDULER é uma feature do Oracle 10g. Infelizmente no 9i você ainda terá que usar o DBMS_JOB 😥
[]s Ishii
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › Banco de dados Oracle › Problema ao executar JOB