我有一个本机编译的存储过程,我想执行另一个存储过程的异步执行。背景是,我需要尽可能快地存储一些临时数据(在我原生编译的存储过程中),我想调用另一个存储过程异步来进一步处理我的数据(但没有“阻塞”当前本机编译的存储程序)。
有人知道这是否可行?
这是我想要的一个例子:
create procedure [Staging].[spProcessXXX]
with native_compilation, schemabinding, execute as owner
as
begin atomic
with (transaction isolation level=snapshot, language=N'us_english')
-- 1.
-- do my performance-relevant stuff here
-- 2.
-- exec SP_XYZ (async, for example over SQL Job Agent or Service Broker)
end
答案 0 :(得分:1)
那是不可能的。让应用程序发出异步调用。
替代方法:如果这是非本机过程,您可以使用服务代理。因此,创建一个非本机编译的包装程序。该包装器调用本机proc,并且可以使用服务代理。