我正在使用C#在SQL数据库中进行一些繁重的工作。
我不断收到以下超时异常:
System.Data.SqlClient.SqlException: 超时时间已到。在操作完成之前超时或服务器没有响应。该语句已终止。
System.Data.SqlClient.SqlException:
超时时间已到。在操作完成之前超时或服务器没有响应。该语句已终止。
我运行了大量查询(超过10万个查询),而导致该异常的并不是任何一个特定的查询-有时我会设法无一例外地完成所有这些查询。
一些例外来自作为较大事务的一部分运行的查询,某些例外来自独立运行的查询。
当我直接在SQL Server Management Studio中运行相同的查询时,它们只需不到一秒钟的时间即可运行。
我对所有查询都使用samme SQLConnection对象,但对每个查询都使用新的SQLCommand对象。
当我尝试使用SQL Server Profiler时,它只是说该批处理/ RPC已完成。
为什么我会随机获得此异常?
这可能是由于阻塞-可能是超时导致的,它正被另一个等待释放锁的进程阻塞。这可以解释为什么它似乎随机出现,因为它取决于当时的情况。