一尘不染

快速查询时SQL超时过期

sql

我正在使用C#在SQL数据库中进行一些繁重的工作。

我不断收到以下超时异常:

 System.Data.SqlClient.SqlException:

超时时间已到。在操作完成之前超时或服务器没有响应。该语句已终止。

我运行了大量查询(超过10万个查询),而导致该异常的并不是任何一个特定的查询-有时我会设法无一例外地完成所有这些查询。

一些例外来自作为较大事务的一部分运行的查询,某些例外来自独立运行的查询。

当我直接在SQL Server Management Studio中运行相同的查询时,它们只需不到一秒钟的时间即可运行。

我对所有查询都使用samme SQLConnection对象,但对每个查询都使用新的SQLCommand对象。

当我尝试使用SQL Server Profiler时,它只是说该批处理/ RPC已完成。

为什么我会随机获得此异常?


阅读 185

收藏
2021-03-08

共1个答案

一尘不染

这可能是由于阻塞-可能是超时导致的,它正被另一个等待释放锁的进程阻塞。这可以解释为什么它似乎随机出现,因为它取决于当时的情况。

2021-03-08