none
Como executar uma procedure sem precisar esperar a execução(retorno) ??? RRS feed

  • Pergunta

  •  

    Estou com um problema em meu sistema onde uma procedure executada internamente em uma Trigger de banco de dados está demorando muito para gerar o retorno do resultado, gerando assim em consequencia demora para o retorno ao usuario.

     

    Gostaria de saber se existe alguma forma de executar a procedure dentro da trigger e não precisar esperar(receber) o retorno do banco, ou seja consigo executar a procedure e continuar os processo dentro da trigger normalmente sem aguardar a procedure ???

     

    Obrigado

     

    quarta-feira, 8 de agosto de 2007 20:33

Todas as Respostas

  •  

    Olá!

     

     

    Se for SQL 2005 existe a possibilidade de implementar o Service Broker, que trabalha com o conceito de filas. Os dados transmitidos usam formato XML.

     

    Agora, no SQL 2000 não tem jeito não. A menos que você implemente uma solução "alternativa", onde a trigger grava os dados de parâmetros da procedure em uma tabela e a cada minuto um job lê essa tabela verificando se tem algum registro novo. Não acho essa solução interessante pois até a proc ser executada os dados podem ter mudado.

     

     

    Abraço


    quinta-feira, 9 de agosto de 2007 03:21
  • Tudo bem?

     

    Só uma dúvida: A sua trigger não depende do que será feito pela stored procedure?

    Qual a idéia?

    quinta-feira, 9 de agosto de 2007 10:06
  • cara, nao vejo como fazer isso ja que a proc nao pode sair da trigger, e a rotina so termina depois que executar a trigger, vc. ja analisou a proc para ver se nao tem como trabalhar nela deixando mais rapida ?, ou ja avaliou se nao compensa criar uma proc que analise e faca o que a trigger faz para nao usar mais triggers ?

    aguardo retorno.

     

    Abs

     

    quinta-feira, 9 de agosto de 2007 10:14
  • Alziro,

     

    A principio seria mais recomendado você procurar analisar a possiblidade de remover esta procedure de dentro do Trigger, executar a procedure diretamente para verificar o tempo de resposta.

     

    Mas é importante entender que uma procedure executada através de um trigger será processada enquanto o trigger estiver sendo utilizado, por isso, muitas vezes isso poderá representar um certo gargalo de processamento.

     

    Você esta utilizar cursores neste procedure?

     

    O seu trigger é de que tipo?

    quinta-feira, 9 de agosto de 2007 11:39