两种Oracle应用程序开发接口的对比分析
2007-05-08 12:09:02 来源:WEB开发网核心提示: OCI还是其他Oracle开发接口的底层实现,如ADO、JDBC都是在OCI上层的封装,两种Oracle应用程序开发接口的对比分析(3),由于OCI是比较底层的接口,少了很多层的封装,生成my_objects表,然后对My_objects表自身进行五次递归镜像,可以提供应用程序与Oracl
OCI还是其他Oracle开发接口的底层实现,如ADO、JDBC都是在OCI上层的封装,由于OCI是比较底层的接口,少了很多层的封装,可以提供应用程序与Oracle的直接连接,所以OCI可以提供最佳的性能。正是基于此,Oracle自身的一些工具及许多著名的Oracle 数据库工具也都是用OCI开发的,如大名鼎鼎的Toad。笔者的OraExplorer也是基于OCI接口开发。
但由于C/C++的学习难度比较大,所以OCI的开发难度与ADO、JDBC等开发接口相比要大许多,OCI的每一个函数的参数都非常多,且比较难以理解,而国内关于OCI开发的学习资料非常少,所以使用OCI开发应用程序的程序员相对ADO的程序员要少得多。
三、对比实验设计
本文将通过一个具体的实验来对比ADO与OCI的性能差距,数据库访问接口的性能主要体现在两个方面,一个是数据读取速度,另一个是数据写入速度,所以本文将基于ADO和OCI各自开发一个Visual C++ 6.0应用程序来进行这两个方面的实验,每个程序完成功能如下:
1) 建立连接
首先,需要连接到Oracle服务器,在这一步需要用户提供SID、用户名和密码信息。
2) 数据初始化
为了实验的通用性及方便读者重现,本实验直接在System用户下操作,需要一个记录数比较多的表来,首先对all_objects表镜像,生成my_objects表,然后对My_objects表自身进行五次递归镜像,最生成一个百万记录的表。相关SQL语句如下:
Truncate table my_objects;
Drop table my_objects;
create table my_objects as select * from all_objects;
insert into my_objects select * from my_objects;
insert into my_objects select * from my_objects;
insert into my_objects select * from my_objects;
insert into my_objects select * from my_objects;
insert into my_objects select * from my_objects;
3) 数据读取
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接