Oracle多线程查询记录锁死问题
开了5个线程,它们共用一个连接,即一个静态的OracleConnection,这5个线程同时执行一个SQL语句进行查询,比如select * from MyTable where name='aaa',即5个线程同时查询同一个表的同一条记录,查询的结果是用的OracleDataAdapter的Fill方法,返回一个结果集DataSet,每个线程new一个OracleDataAdapter和DataSet,当这几个线程同时执行到OracleDataAdapter的Fill方法的时候,就都卡死在这里了,请教高手谁知道这是怎么回事,该怎么解决这种情况?
在C#程序中,用lock方法让每个线程函数串行执行,这样是可以解决问题的,但这样解决的话,如果有多个查询同时进行,那就会等待很长时间才能完成,效率就低了,不知道在oracle数据库层有没有别的解决办法。