2016-08-18 79 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 –