2011-03-09 89 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