我最近将MSSQL服务器从2000版本更新到2005版本,以便在系统中使用udf并调整一些结果。问题是我们没有源代码。
所以,我替换了SQL版本,每一个工作得很好…除非我们需要做一个大的查询。我得到这个错误:
System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
我已经搜索过了,我得到的是,它曾经是一个CommandTimeout
问题,我必须以编程方式解决,因为它应该是在客户端,但这是奇怪的,因为它总是工作,即使有大查询。
我猜这不是客户端,因为在SQL Server 2000工作得很好。
是否有办法消除任何类型的超时?这个系统完全是内部的,只有少数人使用,所以没有中断的风险……我宁愿一个查询永远运行,这讨厌的消息。
提前感谢!
升级后是否更新了所有统计数据?
如何升级到SQL Server 2005 (Setup)
数据库引擎升级到SQL Server 2005后,请完成以下任务:
…
更新统计信息—为了帮助优化查询性能,我们建议在升级后更新所有数据库上的统计信息。使用Sp_updatestats存储过程,用于更新用户定义的统计信息
更新使用计数器 -在早期版本的SQL Server中对于表和索引行计数和页计数可以变成不正确的。要纠正任何无效的行或页计数,我们建议
在升级后的所有数据库上运行DBCC UPDATEUSAGE。
您可以在配置文件中设置连接的超时时间,也可以在设置连接时设置。
SqlCommand1。CommandTimeout = 400000