是否可以在SQL Server中的异步中运行查询。例如,如果我需要运行以下查询
SELECT VALUE FROM DBO.fn1(@Input1)
UNION
SELECT VALUE FROM DBO.fn2(@Input2)
UNION
SELECT VALUE FROM DBO.fn3(@Input3)
UNION
SELECT VALUE FROM DBO.fn4(@Input4)
或没有UNION
对于示例以下查询将返回3个结果集。我可以并行运行所有这些。
SELECT [COLUMN1...COLUMNN] FROM [TABLE1...TABLEN]
SELECT [COLUMN1...COLUMNN] FROM [TABLE1...TABLEN]
SELECT [COLUMN1...COLUMNN] FROM [TABLE1...TABLEN]
我尝试了谷歌,但无法找到并行运行查询的任何内容,类似于C#中基于任务的编程
答案 0 :(得分:0)
在数据库中,没有像编程那样的异步过程。唯一可用的选项是并行性,sql server决定何时使用它。
答案 1 :(得分:0)
您无法在标准SQL中执行此操作:它是同步的。在存储过程完成之前,您也无法处理输出参数。
有关详细信息,请参阅service broker。
有可能(见Asynchronous procedure execution),但很可能结果不是你想要的。首先,异步意味着打破过程调用者所假定的事务上下文(插入发生在不同的事务中)。另外,执行可靠的异步(如在我的链接文章中)意味着执行更多写操作,因此没有性能优势。