我正在執行'.net'代碼中的一個存儲過程。由於數據量很大,執行時間太長。有沒有辦法阻止這種執行從C#代碼?停止從.net執行SQL查詢代碼
換句話說,如果我們從數據庫本身執行查詢,有一個選項可以停止它的執行,但是在代碼中它有可能嗎?
我正在執行'.net'代碼中的一個存儲過程。由於數據量很大,執行時間太長。有沒有辦法阻止這種執行從C#代碼?停止從.net執行SQL查詢代碼
換句話說,如果我們從數據庫本身執行查詢,有一個選項可以停止它的執行,但是在代碼中它有可能嗎?
是sqlcommand.cancel是你的朋友http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.cancel.aspx
顯然關閉命令更有可能100%的時間工作:http://stackoverflow.com/questions/889102/how-to-cancel-a-long-running-數據庫操作/ 3699391#3699391 – user423430 2011-10-07 18:04:30
是的,你可以使用SqlCommand.Cancel
取消查詢。但是,該命令必須在另一個線程中運行(否則僅在命令完成後纔會調用Cancel)。
如果要在指定的時間限制內運行時取消此查詢,也可以指定CommandTimeout
。
你可以做myCommand.Cancel()
,而這將工作最好的,即使我在過去面對類似的問題,並使用myCommand.Cancel()
我已經解決了我的問題。 :) :)
您可以在存儲過程中添加過濾器嗎?嘗試閱讀更多關於sql最佳實踐.. – Crimsonland 2011-01-24 07:48:06