我有以下的情况并行线程的数据库访问,可行的选项?
main()
{
hnd = CreateTHread(func1);
// Call fun2()
wait(hnd);
return ;
}
fun2()
{
//Access database to perform some read operation on TAble A
}
func1()
{
//Access database to perform some read operation on TAble A
// Recursive operations
}
我观察到,fun2()
需要更长的时间才能完成,如果我使用的线程方法。这可能是因为THread func和fuc2在同一张桌子上工作。请注意,这两个函数中只有一个读取操作。该AWR报告建议,查询exectutions的数量增加时使用
你忘了在这里提到最重要的东西?数据库是什么和你使用的驱动程序是什么?你的数据库驱动程序做同步请求或行为像一个队列?你通过单一连接访问它吗? –
@yy_H我使用oracle 11G作为我的数据库。我为线程启动一个单独的事务。如何检查数据库驱动程序是否同时执行请求? –
如果文档不说创建长时间运行的请求并尝试运行同时请求。 –