2016-08-18 44 views
3

我想为将在存储过程中执行的特定SQL查询设置超时值。 是否可以设置特定查询的超时值?如何为特定的SQL查询设置超时?

+1

为什么你要在sql中使用而不是在.net或java中使用 – Mani

+0

SQL Server不会停止运行你的查询,你应该在你执行连接的地方设置客户端的超时时间。如果是SSMS,你可以使用'sp_configure' – Petaflop

+0

我在前端使用.Net,并且有一个来自SqlCommand的选项来设置超时时间,如command.CommandTimeout = 10000。你是否将此引用给我? @Mani –

回答

1

它是强制执行查询超时(RPC或批处理)的客户端API而不是SQL Server。因此,当存储过程包含多个语句时,不能在更细粒度级别设置客户端命令超时。您需要拆分proc,以便所需查询由客户端单独执行,并为该命令指定不同的超时值。

有关如何设置超时的具体细节取决于客户端API。在.NET的情况下,它是SqlCommand.CommandTimeout属性。

+0

假设proc只包含一个查询,那么指定该proc超时的方法是什么?它来自前端如.Net/java ... SqlCommand? @Dan Guzman –

+0

'.Net SqlCommand'的'CommandTimeout'属性将控制超时。从Java,我认为这取决于驱动程序(例如支持'setQueryTimeout()'方法。 –

+0

谢谢@Dan Guzman –