none
Erro em Job RRS feed

  • Pergunta

  • Srs,
    Tenho um Job que dispara uma SP que carga de uma tabela (Sql)
    para outro Tabela (Sql), as tabelas tem cerca de 6 milhoes
    de registros, leva em torno de 30Min para carregar, os passos
    são:
     TRUNCATE TABLE  Tabela1
     INSERT Tabela1
     (SELECT Tabela1_Campo1,Tabela1_Campo2,
      FROM  SERVIDOR.BANCO.DBO.Tabela1)

    Agora o JOB não da erro apenas fica em execução
    ja chegou a levar 54 horas em execução
    ISSO MESMO 54 horas.

    Cenario SQLSERVER 2000

    alguem ai pode me ajudar?


    Maricelmo
    terça-feira, 23 de novembro de 2010 13:47

Respostas

  • Maricelmo,

    Neste caso não tem nenhum processo bloqueando. É problema de muitos dados mesmo. Tente fazer um processo de reindexação dos indices dessa tabela, atualização de estatisticas, dentre outros processos de manutenção. Mas sugiro fazer em um horário alternativo.

    Verifique se não tem nenhum outro JOG rodando no mesmo tempo que este ou algum outro JOB que está acessando esta tabela.

    Att.,

     


    Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com Se o post foi útil, não esqueça de marcá-lo.
    • Marcado como Resposta Maricelmo terça-feira, 23 de novembro de 2010 15:21
    terça-feira, 23 de novembro de 2010 14:56

Todas as Respostas

  • Maricelmo,

    O que pode estar ocorrendo é que algum processo alocou a tabela. Enquanto este processo não terminar o que está fazendo vc não conseguirá mexer.

    Garanta que a tabela está sem acesso.

    Veja tb se o SQL emite alguma mensagem de erro. Se for o caso mande-a para analise.

     

    Att.,


    Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com Se o post foi útil, não esqueça de marcá-lo.
    terça-feira, 23 de novembro de 2010 13:55
  • Ola, Marco Antonio

    Obrigado por responder
    Então, a Questão é que não da erro nenhum,
    apenas fica em execução. então eu tenho que
    Cancelar o Processo.
    Como Faço para saber qual Processo Alocou
    esta TAbela?


    Maricelmo
    terça-feira, 23 de novembro de 2010 14:00
  • Faça o seguinte....Abra uma conexão no Query Analyser para cada comando a seguir e rode por exemplo o comando: SELECT  * FROM TABELA1 e depois SELECT  * FROM SERVIDOR.BANCO.DBO.TABELA1

    Se o SQL ficar processando quer dizer que tem algum processo prendendo. Para saber qual, abra uma nova conexão e rode o comando:

    select * from SYS.sysprocesses e veja a coluna BLOCKED. Se ela tiver algum SPID vc saberá qual maquina está prendendo o acesso pelas colunas: hostname, nt_domain, nt_username, etc....

     

    Att.,


    Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com Se o post foi útil, não esqueça de marcá-lo.
    terça-feira, 23 de novembro de 2010 14:15
  • Bom dia.

    Concordo com o Marco, pois quando fica locado o processo não apresenta erro fica processando e não para é incrível mas é assim mesmo, veja o log de acesso e confira quem esta ou estava acessando a tabela, caso não consiga pegue um horário de menor acesso de usuário derrube todos e rode o job novamente somente com o seu usuário logado no banco.


    Emerson Alberti Corrêa Analista de Suporte Pleno Stefanini IT Solutions (Ipiranga Asfaltos S/A – uma Empresa do sistema BR Petrobras)
    terça-feira, 23 de novembro de 2010 14:16
  • Ola, Marco Antonio

    Então, fiz exatamente o que vc falou

    Resultado:

    Janela1: SELECT  * FROM                                                               --> Terminou normal com 7 min
    Janela2: SELECT  * FROM SERVIDOR.BANCO.DBO.TABELA1              --> Ainda em Execução com 20 Min.

    Janela3: Select * From sysprocesses

    Coluna: SPID = 77,  KPID = 664, BLOKED = 0
                SPID = 84,  KPID = 4252, BLOKED = 0


    Maricelmo
    terça-feira, 23 de novembro de 2010 14:39
  • Maricelmo,

    Neste caso não tem nenhum processo bloqueando. É problema de muitos dados mesmo. Tente fazer um processo de reindexação dos indices dessa tabela, atualização de estatisticas, dentre outros processos de manutenção. Mas sugiro fazer em um horário alternativo.

    Verifique se não tem nenhum outro JOG rodando no mesmo tempo que este ou algum outro JOB que está acessando esta tabela.

    Att.,

     


    Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com Se o post foi útil, não esqueça de marcá-lo.
    • Marcado como Resposta Maricelmo terça-feira, 23 de novembro de 2010 15:21
    terça-feira, 23 de novembro de 2010 14:56