对于链接服务器,我看到如何更改“远程查询超时”配置以暗示对链接服务器的调用应该在特定超时值内完成或回滚。这似乎适用于SQL Server引擎 - 是否可以更改存储过程中的提示,以便特定存储过程可以在需要时运行更长时间,但如果它们运行时所有其他非提示的SPROC会更快地超时?
此处讨论链接查询超时: http://support.microsoft.com/kb/314530
在3秒内将其设置为超时的示例代码如下:
sp_configure 'remote query timeout', 3
go
reconfigure with override
go
答案 0 :(得分:5)
不建议在存储过程中更改它。使用sp_configure
更改时remote query timeout
is a global server setting,因此在存储过程中更改它会影响服务器上所有链接服务器的所有远程查询。
此外,执行sp_configure
需要ALTER SETTINGS
服务器权限,通常只有sysadmin
和serveradmin
。将这些权限授予数据访问帐户将是一个安全问题,因为它们可能会使用sp_configure
命令关闭服务器。
我建议创建一个具有不同名称的第二个链接服务器,您只需使用这个存储过程即可。您可以在SSMS中配置query timeout for each individual linked server。添加第二个链接服务器将使您能够使用不同的链接服务器客户端设置查询同一服务器。如果您使用纯SQL Server链接服务器,则可能需要创建DNS CNAME才能完成此操作。