2015-06-25 45 views
2

問題是在標題中...任何方式我設置一個SqlCommand在100ms超時? documentation表示SqlCommand/ADO僅支持全秒超時。在SQL Server(使用ADO.NET)中設置小超時(毫秒)的方法?

基本上,我有一個非常小的插入,應採取< 30毫秒。有時,SQL決定變慢,插入被阻塞,可能需要1-2秒。然而,插入的數據不是任務關鍵,我寧願它失敗也不願等待和阻止。我可以使用ADO.NET設置一個非常小的超時時間嗎?還是應該讓Sql Insert作爲1秒的超時時間,然後使用ASYNC方法進行「隨意忘記」?

在此先感謝。

+1

SQL服務器緩慢還是您的表鎖定策略不正確? –

+0

如果你真的想這樣做,lock_timeout可能是你要找的:https://technet.microsoft.com/en-us/library/ms189470%28v=sql.105%29.aspx –

+0

設置lock_timeout無論如何,毫秒聽起來像一個壞主意 –

回答

2

如果您希望在短時間內無法獲取鎖定時插入失敗,請在執行插入之前設置鎖定超時。這將導致服務器端而不是客戶端超時。

SET LOCK_TIMEOUT 100; 
相關問題