2016-09-14 80 views
1

我正在處理需要運行幾個獨立select語句的sproc。假設我有3條select語句,如下所示:有沒有辦法在sql服務器中編寫異步sql查詢

select * from x into #x 
select * from y into #y 
select * from z into #z 

假設每個select語句需要2s才能完成。如果我如上所示運行sproc,那麼總查詢時間將爲6秒。但是,如果我能夠異步/同時運行查詢,那麼我可以在2秒內執行sproc。有沒有辦法做這樣的事情在T-SQL ?:

select * from x into #x async 
select * from y into #y async 
select * from z into #z async 
+0

這是一個有趣的概念,但不,沒有辦法。 –

+0

不,如果您使用的是SSMS,則不在同一窗口中。您需要爲每個查詢打開1個窗口,並且每個窗口都代表可以獨立於其他會話執行的不同會話。這通常不是問題,因爲查詢通常是從SSMS之外的進程(如Web站點或某個控制檯應用程序)執行的,所以這些應用程序可以打開多個連接並並行運行查詢。因此,這樣的功能並沒有真正的需求。 – Igor

+2

這個問題與你自己的問題密切相關http://stackoverflow.com/questions/4571823/sql-server-tsql-is-it-possible-to-exec-statements-in-parallel – JsonStatham

回答

0

作爲事務數據庫系統,SQL Server不具備異步執行操作的概念。如果你需要做這樣的事情,你應該在你的應用層執行這個邏輯。

0

您可以通過創建多個作業雖是解決辦法的方式異步運行,

請參見下面的代碼

​​

實例化這兩個職位或日程安排,以便它可以異步運行

相關問題