先说下我的系统插入数据的方式:
开了多个线程同时插入数据,每个线程一次性插入61条数据(一条数据插入到主表,另外60条插入到从表),每60秒重复此操作。具体的插入代码我会建立一个OracleConnection连接,等61条数据插入完毕后再关闭它。但是,在50个线程下效果很不理想,会出现“超时时间已到,已超出连接池的连接数量 ”的错误。
            //建立一个连接
            OracleConnection connection = new OracleConnection(OracleHelper.ConnectionStringLocalTransaction);            foreach (PressureInfo p in pressureInfoList)
            {
//其他操作
                OracleHelper.ExecuteNonQuery(connection, CommandType.Text, strSqlPressure.ToString(), parametersPressure);
}
            connection.Close();正在检查什么地方出错了。请大家帮帮忙

解决方案 »

  1.   

    认为线程越多效率越高了。是错的。你这样的应用不用线程都OK。
    60条数据的插入,应该是0.01-2s的速度。
      

  2.   

    关于你的数据量的建议 楼上几个都说了
    最好就是不用多线程单就你的问题来说
    客户端 连接池是可以配置最大连接数量的 在web.config里面另外一个限制就在Oracle
    Oracle 本身就存在一个Open_Cursor参数  默认300
    你超过300个线程的话即使配置了客户端连接池数量 还是会报错
    解决办法是增加该参数的值希望对扩充你的思路有所帮助