(异步)执行本机编译的存储过程

时间:2016-04-29 12:46:15

标签: sql-server tsql stored-procedures memory-optimized-tables

我有一个本机编译的存储过程,我想执行另一个存储过程的异步执行。背景是,我需要尽可能快地存储一些临时数据(在我原生编译的存储过程中),我想调用另一个存储过程异步来进一步处理我的数据(但没有“阻塞”当前本机编译的存储程序)。

有人知道这是否可行?

这是我想要的一个例子:

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 

1 个答案:

答案 0 :(得分:1)

那是不可能的。让应用程序发出异步调用。

替代方法:如果这是非本机过程,您可以使用服务代理。因此,创建一个非本机编译的包装程序。该包装器调用本机proc,并且可以使用服务代理。