2012-05-17 37 views
2

我正在尋找類似的東西。雖然語法錯誤,但它演示了原理如何運行未知數量的並行存儲過程

foreach(int i in myIntArray) 
{ 

execute mystoredProc i;//this should kick off the proc and go onto next one without waiting for a return value 

} 

這些存儲過程是從Windows應用程序中調用的。我有點懷疑在應用程序端創建大量線程。我寧願在SQL服務器端執行線程。我願意使用SSIS。

+0

查看這個答案的分而治之節http://stackoverflow.com/questions/4129071/optimal-mysql-settings-for-queries-that-deliver-large-amounts-of-data/4144514#4144514 –

回答

1

你不能直接要求你做什麼。

什麼可以做的是啓動n線程,然後每個線程打開它自己的連接,並且每個連接運行它自己的SQL查詢。然後每個線程都會等待它的查詢返回。你不能在一個線程中做到這一點。

這也意味着您不能在T-SQL中本地執行此操作。

您可以編寫啓動多個線程的CLR例程,並重覆上述過程。因此,使您的T-SQL能夠調用您的CLR代碼,並使CLR處理併發問題。

但是,這個標準的做法確實是有多個客戶端線程。