【问题标题】:Execute concurrently SQL Server并发执行 SQL Server
【发布时间】:2011-03-09 09:04:57
【问题描述】:

我在存储过程中做了一些exec,有没有办法同时执行这些 exec,它们是独立的,所以没有竞争条件......

另外,我正在做一些事情(真的更复杂),比如:

SET @template = 'SELECT FROM ... INSERT ...'
SET @template2 = 'SELECT FROM ... INSERT ...'
EXEC(@template);
EXEC(@template2);

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    这样做的方法是让您的代码异步调用每个 EXEC 命令。 SQL Server 无法显式地异步执行存储过程。

    另请注意,异步执行它们可能会也可能不会提高性能。

    【讨论】:

    • 我的意思是使用 ADO.NET 异步执行查询,例如使用 BeginExecuteQuery。
    【解决方案2】:

    最简单的方法是从 SQL Server Management Studio 打开两个查询窗口并在两个窗口中执行两组命令。

    查询窗口 1

    SET @template = 'SELECT FROM ... INSERT ...'
    EXEC(@template);
    

    查询窗口 2

    SET @template2 = 'SELECT FROM ... INSERT ...'
    EXEC(@template2);
    

    【讨论】:

    • 有没有办法在同一个窗口的同一个代码中做到这一点?
    • 不完全是。您需要通过 C# ADO.Net 等外部代码运行异步调用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 2010-09-10
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    相关资源
    最近更新 更多