occi vs otl,请c++经验的进来说说

codearts 2010-06-23 11:02:29
occi是oracle提供的C++开发接口

otl是开源的项目,也是C++访问数据库的,但支持多种不同的数据库,比如:db2, sqlserver, timesten,...


1) 在性能方面,occi vs otl谁强?
occi有一个executeArrayUpdate(), 在批量更新时效率很多,otl有对应的功能不? otl_stream的buffer size可以对应到update不?

2)
谁在项目中用过otl, 并且项目成功?

3)
想用otl同时访问oracle(使用oci即native方式访问,而不是odbc),timesten(使用odbc方式访问), 可否做到?

由于本人对 otl 和occi只是初步了解阶段,且没有时间去读otl的源码,所以请达人解惑,

...全文
607 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Niu_niu_chi_cao 2011-05-11
  • 打赏
  • 举报
回复
我开始用了OTL,感觉找到了一个库有了依靠,呵呵毕竟我是个新手,刚开始学习oracle。现在决定试试occi
gelyon 2010-08-06
  • 打赏
  • 举报
回复
学习啊
  • 打赏
  • 举报
回复
studying
codearts 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 iihero 的回复:]

这个。。。。。你上itpub上,随便找个大侠,都有metalink帐号。
[/Quote]

在上面发帖好几天了,没人理,杯具
iihero 2010-08-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 codearts 的回复:]
最近写C++程序,遇到一个11gR2的BUG,郁闷中


谁有metalink帐号,帮我提个问题啥?
[/Quote]
这个。。。。。你上itpub上,随便找个大侠,都有metalink帐号。
shunshine988 2010-08-03
  • 打赏
  • 举报
回复
学习ing
codearts 2010-08-02
  • 打赏
  • 举报
回复
最近写C++程序,遇到一个11gR2的BUG,郁闷中


谁有metalink帐号,帮我提个问题啥?
shunshine988 2010-07-04
  • 打赏
  • 举报
回复
最近在学OCCI,关注下
iihero 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 codearts 的回复:]

这几天研究了一下,我的问题 3) 答案是YES

但是用OCCI与OTL做了性能比较,从一张40W记录中的表中取数据,OTL设置缓冲区5000,OCCI设置prefetchcount为1000,结果occi的性能是otl的2倍以上。

经过比较后,还是OCCI性能强很多,最终还是舍弃OTL了
[/Quote]
OCCI近水楼台,如果效率还要慢些,有些说不过去。
codearts 2010-07-01
  • 打赏
  • 举报
回复
这几天研究了一下,我的问题 3) 答案是YES

但是用OCCI与OTL做了性能比较,从一张40W记录中的表中取数据,OTL设置缓冲区5000,OCCI设置prefetchcount为1000,结果occi的性能是otl的2倍以上。

经过比较后,还是OCCI性能强很多,最终还是舍弃OTL了
iihero 2010-06-24
  • 打赏
  • 举报
回复
个人建议,如果使用的是oracle9.2及以上版本,可以直接上OCCI,代码可读性强。效率也不差。库的稳定性也比较好。
otl虽然效率也不错,但是如果使用不当,调试也颇为困难。
至于timesten使用odbc,完全可以自己直接使用odbc API调用,比oci相关调用要简单多了。
iqlife 2010-06-23
  • 打赏
  • 举报
回复
学习中。。linux下装ORACLE11g装了2天,准备进军底层开发。。。
codearts 2010-06-23
  • 打赏
  • 举报
回复
从一个指南中看到:

注意对于SELECT语句来说,缓冲区的大小并不影响其执行时机。当otl_stream以SELECT语句实例化,并设定好缓冲区大小后,一旦所有声明的绑定变量使用<<操作符被绑定完成,该SELECT语句将被OTL流立刻执行,与设置的缓存区具体大小并没有关系。

与此相反,对于INSERT/DELETE/UPDATE语句,缓冲区大小的设置将影响其执行时机。当缓冲区被SQL填满时,OTL流将自动刷新缓冲区,立刻批量执行缓冲区中所有的SQL。因此,当执行语句为INSERT/DELETE/UPDATE时,也应该根据需要合理设置缓冲区大小。
--------------------------------------------------
貌似OTL的缓冲区,INSERT/U/D, 相当于occi的executeArrayUpdate

17,075

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧