2011-03-09 92 views
2

我做一些exec一个存储过程中,有没有同时执行这些高管的方式,他们因此没有竞争条件是独立的...并发执行的SQL Server

而且,我做的事(真的更复杂)如:

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

回答

1

要做到这一点的方法是让你的代码异步调用每个EXEC命令。 SQL Server无法异步显式执行存储过程。

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

+0

你怎么做taht运行一些例子和测试性能??? – cMinor 2011-03-09 01:06:54

+0

我的意思是使用ADO.NET异步执行查询,例如使用BeginExecuteQuery。 – 2011-03-09 01:21:26

1

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

查询窗口1

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

查询窗口2

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

有没有办法在相同的代码在同一窗口中做到这一点? – cMinor 2011-03-09 01:07:24

+1

没有不完全。您需要通过外部代码(如C#ADO.Net)运行异步调用 – 2011-03-09 01:12:44