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

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
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
-
-
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
-
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?