在执行大型存储过程时在SQL中运行查询

时间:2012-10-04 06:24:59

标签: sql sql-server wcf silverlight stored-procedures

我遇到需要运行存储过程(> 5分钟)并希望我的(silverlight)应用程序保持“活着”的情况

我使用异步WCF服务为我的UI线程做出响应,至少在我再次请求来自同一个数据库的数据之前

然后,只有在SP完成后才执行其他请求

我可以以某种方式(在SQL中假设)将storedprocedure设置为能够与其他查询一起运行吗?

由于

修改

  1. DB在SQL Server上
  2. [OperationContract(AsyncPattern = true)]服务方法
  3. 中从Linq2Sql模型启动SP
  4. 使用WCF Ria Services处理其他数据(来自Linq2SQL模型的DomainService,相同的连接字符串)
  5. 编辑2:

    @ dan1111:通过测试我看到,直到WCF服务将结果返回给Silverlight,DomainContext'冻结'

    最初:

    1. 我使用Thread.Sleep(15000)
    2. 调用WCF异步方法
    3. 申请继续运作良好
    4. 当我转到需要数据的页面时,我请求DataContext.Load()
    5. DataContext.IsLoading成为现实
    6. 我必须等待15秒的剩余时间
    7. 现在为之前的DataContext.Load
    8. 触发了已完成的事件

      请告诉我你的意见

1 个答案:

答案 0 :(得分:3)

一个非常简单的解决方案是打开多个与数据库的连接。每个连接都可以自己做。

但是,有另一种方法可以实际设置一个异步运行的过程:

http://rusanu.com/2009/08/05/asynchronous-procedure-execution/