有时候,由于数据表的数据非常大,查询语句需要花较长的时间查询出结果来。
我想问有没有什么命令可以控制时间,比如:当查询的时间超过30秒时自动取消查询。

解决方案 »

  1.   

    用性能视图,看看它已经执行了多久,如果超过了 30 秒,直接用 kill session——id
      

  2.   

    ADODB.Command有个CommandTimeout参数,单位毫秒.
      

  3.   

    就是在sql server 查询中,执行SQL查询超过30秒时能够自动‘取消执行查询’
      

  4.   

    以VB代码为例,Dim sDsn As String, sSql As String
    Dim adoCN As New ADODB.Connection
    Dim rs As ADODB.RecordsetadoCN.CommandTimeout = 30000  --> 设置超时时间
    sDsn = "[数据库连接串]"
    adoCN.Open (sDsn)sSql = "[SQL指令]"-- 执行
    Set rs = adoCN.Execute(sSql)
      

  5.   

    据我了解SQL没有CommandTimeout参数,
    与之类似的是lock_timeout,仅类似,含义不同!
      

  6.   

    非要实现可以:
    设定Job,定时查看sys.dm_exec_requests的total_elapsed_time.
    大于设定的值则执行 kill [session_id]但个人建议从SQL语句上优化,而非一味的取消查询.回滚也有代价的.
      

  7.   

    你可以上面定一个时间,等到了多少秒之后break就好了。