c – 并行线程中的数据库访问,可行的选择?

c – 并行线程中的数据库访问,可行的选择?,第1张

概述我有以下情况 main(){ hnd = CreateTHread( func1 ); // Call fun2() wait(hnd); return ;}fun2(){ //Access database to perform some read operation on TAble A}func1(){//Access data 我有以下情况

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的数量增加了

解决方法 一个类似的问题 – Multi-threaded database read access

Oracle JDBC接口以及Oracle本机驱动程序(我猜)能够处理多线程请求(http://www.cs.umbc.edu/portal/help/oracle8/java.815/a64685/tips1.htm)

但是,当涉及到数据库引擎中的实现时 – 这一点尚不清楚.从当前文档中我的理解是,只要您的请求是Readonly而无意更新就不会发生锁定,您应该看到性能提升(至少是次要的).

然而,还有许多其他因素决定引擎是否会使用并行性.服务器(多核)等的硬件配置还可以确定查询引擎是否采用并行或排队方法.

顺便说一下你在两种方法中观察到的时间差异有多大.您的数据量是多少?

总结

以上是内存溢出为你收集整理的c – 并行线程中的数据库访问,可行的选择?全部内容,希望文章能够帮你解决c – 并行线程中的数据库访问,可行的选择?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1230906.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存