所有的突然,Sql Server超时

Sad*_*egh 1 sql vb.net timeout

我们得到了一个传统的vb.net应用程序,它已经工作了多年但是它突然停止工作并且给了sql server超时大部分应用程序都给出了超时错误,例如,一部分是代码:

command2 = New SqlCommand("select * from Acc order by AccDate,AccNo,AccSeq", SBSConnection2)
        reader2 = command2.ExecuteReader()
    If reader2.HasRows() Then
        While reader2.Read()
            If IndiAccNo <> reader2("AccNo") Then
                CAccNo = CAccNo + 1
                CAccSeq = 10001
                IndiAccNo = reader2("AccNo")
            Else
                CAccSeq = CAccSeq + 1
           End If
            command3 = New SqlCommand("update Acc Set AccNo=@NewAccNo,AccSeq=@NewAccSeq where AccNo=@AccNo and AccSeq=@AccSeq", SBSConnection3)
            command3.Parameters.Add("@AccNo", SqlDbType.Int).Value = reader2("AccNo")
        command3.Parameters.Add("@AccSeq", SqlDbType.Int).Value = reader2("AccSeq")
          command3.Parameters.Add("@NewAccNo", SqlDbType.Int).Value = CAccNo
        command3.Parameters.Add("@NewAccSeq", SqlDbType.Int).Value = CAccSeq

      command3.ExecuteNonQuery()
    End While
End If
Run Code Online (Sandbox Code Playgroud)

它工作,现在在command3.ExecuteNonQuery()任何想法?

~~~~~~~~~~~一些信息:

在网络上没有任何改变,应用程序使用本地数据库主要问题是即使在开发环境中它也完成了工作

Bob*_*ica 16

我会说明显而已 - 改变了一些事情.它可能是一个没有达到预期效果的升级 - 它可能是一个向南的网络组件 - 它可能是一个平板磁盘 - 它可能是很多东西 - 但是访问路径中的某些东西已经改变了.您还看到了哪些其他问题迹象,包括与此应用程序无直接关系的问题?数据库存储在哪里(本地磁盘,网络存储盒,由天使写在引脚的头部,其他)?您的系统管理员是否以某种方式"帮助"或"改进"了某些事情?代码没有磨损 - 其他事情已经发生.

  • '由天使写在一个别针的头上' - 搞笑:) (2认同)

sgm*_*ore 15

这个查询是否可能随着时间的推移而变慢,现在刚刚超过默认超时?

acc表中有多少条记录,AccNo和AccSeq上有索引吗?你还在使用什么版本的SQL?


HLG*_*GEM 10

您更新统计信息和重建索引多久了?

你的数据增长了多少?对小型数据集起作用的查询可能对大型数据集不利.

你有锁定问题吗?[AMJ]您是否检查过活动监视器以查看超时发生时是否存在锁定?

您是否运行了探查器来获取超时的查询,然后直接在服务器上运行它?它更快吗?将信息从数据库服务器移动到应用程序也可能是网络问题.这至少会告诉您它是SQl Server问题还是网络问题.

就像Bob Jarvis说的那样,服务器上最近发生了哪些变化?数据库结构本身有什么变化吗?有人添加了触发器吗?