对于并发数大的系统,要充分利用 缓存机制 和 数据库连接池的机制,否则,很容易出现数据库并发超标,或者读脏数据等的情况,而对于IIS,也容易出现 连接数过大,内存占用超标等异常。
同时,要注意多并发对资源的竞争,恰当使用资源锁(lock) 和数据库的读写锁 (table lock ,row lock )等
检查一下DataReader有没有关闭
如
using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.ConnectionString, CommandType.Text, mSQL))
{
while (reader.Read())
{
r = string.Format("{0}", reader["contents"].ToString());
break;
}
reader.Close();
}
一定要关闭的
这个问题,感觉应该检查一下是否 用的是一个全局公用连接对象,是的话最好分开用
DataReader会占用当前连接,因此,要避免长时间打开一个DataReader
while(DataReader1.Read()
{
//处理比较复杂的逻辑
}