Pular para o conteúdo
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #96331
    souza
    Participante

      Srs,
      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
      Eduardo

      #96332
      Ishii
      Participante

        Olá,

        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_jobs

        Se 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

        #96334
        souza
        Participante

          e se tiver usando o 9i posso utilizar tb ? ou devo utilizar o que postei ?

          desde ja obrigado
          eduardo

          #96346
          Ishii
          Participante

            Olá,

            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

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.