我最近更新了2000版到2005版的MSSQL服务器,以利用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中工作正常。
有没有办法删除任何类型的超时?该系统完全是内部的,只有少数人使用它,因此没有中断的风险......我更喜欢查询这个烦人的消息。
提前致谢!
答案 0 :(得分:1)
升级后是否更新了所有统计信息?
How to: Upgrade to SQL Server 2005 (Setup)
将数据库引擎升级到SQL Server 2005后,请完成 以下任务:
...
更新统计信息 - 为了帮助优化查询性能,我们建议您这样做 您在升级后更新所有数据库的统计信息。使用 sp_updatestats存储过程以更新用户定义的统计信息 SQL Server 2005数据库中的表。
更新使用率计数器 - 在早期版本的SQL Server中,使用值 对于表和索引行计数和页数可以成为 不正确。要更正任何无效的行数或页数,我们建议您这样做 您在升级后在所有数据库上运行DBCC UPDATEUSAGE。
答案 1 :(得分:0)
您可以在配置文件中或设置连接时设置连接的超时。
SqlCommand1.CommandTimeout = 400000