C# 使用OCCI 连接Oracle 数据库
最近因需要研究了一下C#向Oracle数据库中插入数据的问题,通常情况下使用微软自带的组件ADO.NET来连接并操作数据库,这也是最简便
最近因需要研究了一下C#向Oracle数据库中插入数据的问题,通常情况下使用微软自带的组件ADO.NET来连接并操作数据库,这也是最简便的方式,用法也比较简单,即在程序开头加上using System.Data.OracleClient。另外就是使用Oracle提供的ODP.net,这需要下载ODAC,并在程序中引用Oracle.DataAccess.dll。
接下来写程序测试向数据库中插入记录的速度了,首先尝试使用ADO.net。
部分代码如下:
C#程序运行在Windows Server 2008 32位上,机器为Xeon E552O * 2,2.27Ghz,共16核内存12GB。Oracle 安装在RedHat AS4U4,cpu为AMD Opterron 275 * 2 ,2.2GHz,共4核心,,内存16GB,oracle 10g。
测试结果为33秒左右,每秒插入不到700条,之后也采用了绑定变量及调用存储过程等方法,插入速度也没有多大提高。
于是想到了用ODP.net,在网上查到说ODAC的版本必须与安装的oracle对应,虽然这个要求感觉不太灵活,因为实际的使用环境可能与开发环境不一致,到时还要更换ODAC的版本,且ODAC在官网上并不是能对应上所有的Oracle版本。在网上看到使用ODP.net插入速度可以达到数万条每秒,但我多次尝试时,都在运行时出现问题,根本无法运行成功。于是便放弃了。Oracle与MS的东西兼容性不强,或者说是Oracle本身向下兼容的能力弱,真是令人抓狂。
多方查找后发现了OCI这个东西,于是想到了使用封装了OCI的OCCI,这样眼前突然一亮。之后的思路就很清淅了,先用c++做一个dll,里面的函数是对OCCI的进行一步封装,再用c#调用这个dll就可以了。下面就是实现的具体过程了。
推荐阅读
-
C# 使用OCCI 连接Oracle 数据库
-
Java使用JDBC连接数据库的详细步骤
-
Oracle:pl/sql developer 连接远程oracle数据库(精简版)
-
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
-
Oracle数据库的登陆、sqlplus的一些使用技巧以及Oracle中常用的知识讲解
-
oracle 数据库连接方法与代码
-
在Linux下配置Oracle的listener远程连接数据库
-
PHP使用PDO连接ACCESS数据库_php实例
-
使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库
-
PHP程序中使用adodb连接不同数据库的代码实例_PHP