从 .net 代码停止 SQL 查询执行
Posted
技术标签:
【中文标题】从 .net 代码停止 SQL 查询执行【英文标题】:Stop SQL query execution from .net Code 【发布时间】:2011-06-14 08:39:31 【问题描述】:我正在从“.net”代码执行一个存储过程。由于数据量很大,所以执行起来花费了太多时间。有什么办法可以从 c# 代码中阻止这种执行?
换句话说,如果我们从数据库本身执行查询,可以选择停止执行,但在代码中是否可以?
【问题讨论】:
您可以在存储过程中添加过滤器吗?尝试阅读有关 sql 最佳实践的更多信息.. 【参考方案1】:是的 sqlcommand.cancel 是你的朋友http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.cancel.aspx
【讨论】:
显然关闭命令更有可能 100% 工作:***.com/questions/889102/…【参考方案2】:是的,您可以使用SqlCommand.Cancel
取消查询。但是,该命令必须在另一个线程中运行(否则只有在命令完成后才会调用 Cancel)。
如果您想在查询超过指定时间限制时取消此查询,您也可以指定CommandTimeout
。
【讨论】:
命令必须在另一个线程中运行?真实世界的样本? FWIW,设置CommandTimeout
不会取消 mysql 数据库服务器上的查询。它只是结束了客户端的等待。这需要显式调用@MySql Connector/Connection.cs。【参考方案3】:
你可以做myCommand.Cancel()
,这将是最好的,因为即使我过去也遇到过类似的问题,并且使用myCommand.Cancel()
我已经解决了我的问题。 :) :)
【讨论】:
以上是关于从 .net 代码停止 SQL 查询执行的主要内容,如果未能解决你的问题,请参考以下文章