【问题标题】:Stop SQL query execution from .net Code从 .net 代码停止 SQL 查询执行
【发布时间】:2011-06-14 08:39:31
【问题描述】:

我正在从“.net”代码执行一个存储过程。由于数据量很大,所以执行起来花费了太多时间。有什么办法可以从 c# 代码中阻止这种执行?

换句话说,如果我们从数据库本身执行查询,可以选择停止执行,但在代码中是否可以?

【问题讨论】:

  • 您可以在存储过程中添加过滤器吗?尝试阅读有关 sql 最佳实践的更多信息..

标签: c# asp.net sql execution


【解决方案1】:

【讨论】:

【解决方案2】:

是的,您可以使用SqlCommand.Cancel 取消查询。但是,该命令必须在另一个线程中运行(否则只有在命令完成后才会调用 Cancel)。

如果您想在查询超过指定时间限制时取消此查询,您也可以指定CommandTimeout

【讨论】:

  • 命令必须在另一个线程中运行?真实世界的样本?
  • FWIW,设置 CommandTimeout 不会取消 MySQL 数据库服务器上的查询。它只是结束了客户端的等待。这需要显式调用@MySql Connector/Connection.cs
【解决方案3】:

你可以做myCommand.Cancel(),这将是最好的,因为即使我过去也遇到过类似的问题,并且使用myCommand.Cancel() 我已经解决了我的问题。 :) :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-14
    • 2013-10-12
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多