none
Stored Procedure X SQL Agent RRS feed

  • Pergunta

  • Olá Pessoal,

          Tenho um sério problema aqui na empresa, tenho uma SP com um job agendado para no 01:00 da manhã e toda vez que esse job eh executado demora 10 hs para terminar. Mas quando inicio esta procedure diretamento do Query Analyzer, no mesmo horário ela eh executada em 01:20 hs. Não tenho idéia do que possa ser, achei que talvez algum processo estivesse rodando junto que esse job mas também não. Por que ela roda mais rápido na minha máquina do no proprio servidor, sendo que das duas maneiras elas são executadas no Servidor.

         Alguem tem alguma idéia do que possa ser??

     

    Muito Obrigado,

     

    Carlos Eduardo

    terça-feira, 8 de agosto de 2006 13:18

Todas as Respostas

  • o que esta proc faz ?, os parametros chamados no agente sao exatametne os mesmo que vc. usa no QA ?, vc. ja tentou executar olhando o plano de execucao dessa query ?

     

    qualquer coisa retorne.

     

    Abs;

    terça-feira, 8 de agosto de 2006 13:32
  • Olá Marcelo,

    Esta procedure atualiza o banco de dados. Verificando se parcelas estão pagas, quem está devendo, este tipo de coisa.

        Não eh passado nenhum parâmetro, A primeira SP abre um cursor que chama outras SPs passando o numero do contrato, para a chamada uso apenas

                       "exec pr_atualiza_sistema"

         E ela faz todas as atualizações necessárias, já analizai o plano de execução e otimizei o máximo que eu podia.

         Tentei tirar o máximo de Tables Scan que eu podia.

         Mas o mais estranho na minha máquina roda em 1/10 do tempo do que roda se iniciada pelo servidor.

        Muito Obrigado.

       Carlos Eduardo

    terça-feira, 8 de agosto de 2006 13:46
  • vc. pode por favor rodar usando a opcao with recompile no job ? faca um teste tambem na sua aplicacao.

     

    Abs.

    terça-feira, 8 de agosto de 2006 14:39
  •  

    Vou tentar, obrigado

    terça-feira, 8 de agosto de 2006 15:12
  • Carlos,

    Se tiver t-sql dentro da stored procedure use  o SP_EXECUTESQL  e use tambem o sp_recompile  para compilar a stored procedure , sete os SET NOCOUNT ON, nunca chame uma strored procedure começando por "sp_*" pois faz uma confusão pois ele vai primeiro na master e passe o caminho completo da stored procedure exec banco..spP_nome.

    Faça um trace usando o profile e pegue o SP:Recompile e  SP:StmtStarting a partir dai pode encontrar alguns gargalos.

    Espero ter ajudado.

    terça-feira, 8 de agosto de 2006 17:15