您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > OTL和QtSql操作数据库效率对比
OTL和QtSql操作数据库效率对比2015-07-16张志敏一、OTL访问数据库(一)简介OTL是Oracle,OdbcandDB2-CLITemplateLibrary的缩写,是一个操控关系数据库的C++模板库,它目前几乎支持所有的当前各种主流数据库,如下表所示:数据库访问接口支持版本OracleOCIOCI7、OCI8、OCI8i、OCI9i、OCI10gDB2CLIDB2CLIMSSQLServer、Sybase、Informix、MySQL、Interbase/Firebird、PostgreSQL、SQLite、SAP/DB、TimesTen、MSACCESSODBCODBC2.5、ODBC3.xOracle和DB2也可以由OTL间接使用ODBC的方式来进行操纵。OTL中直接操作Oracle主要是通过Oracle提供的OCI接口进行,依赖于Oracle客户端。OTL使用简单,只要头文件中包含有:#include“otlv4.h”就可,实际上整个OTL就一个“.H”的文件,使用起来极为的方便。优点(1).跨平台(2).运行效率高,与C语言直接调用数据库API相当(3).开发效率高,使用方便,繁在其内,简在其外,比ADO.net使用起来更简单,更简洁(4).部署容易,不需要ADO组件,不需要.netframework等缺点(1).只能在C++中使用(二)测试条件操作系统:CentOS6.6(64bit)虚拟机Oracle:11.2.0.1.0数据量:10,000条字段数量:2测试方法:增、删、改、查操作均按照一条一条执行的方式进行(三)耗时统计OTL测试结果(10万条)统计次数操作内容1(s)2(s)3(s)4(s)5(s)平均(s)插入114117116122115116.8修改117125129127127125查询666364626363.6删除127133128129126128.6二、QtSql访问数据库(一)简介Qt提供了QtSql模块来访问数据库,此模块使用驱动插件来与不同类型的数据库接口进行交互。由于Qt的SQL模块接口是依赖数据库的,因此所有的驱动插件中都包含了对应类型的数据库的代码。部分数据库驱动已由Qt提供,其它的数据库驱动可以添加。Qt提供了驱动源代码,开发者可用此源代码作模板编写自己的数据库驱动。下表列出了Qt包含的数据库驱动。由于GPL许可证的支持问题,开源版本的Qt未列出所有的数据库驱动。DrivernameDBMSQDB2IBMDB2(version7.1andabove)QIBASEBorlandInterBaseQMYSQLMySQLQOCIOracleCallInterfaceDriverQODBCOpenDatabaseConnectivity(ODBC)-MicrosoftSQLServerandotherODBC-compliantdatabasesQPSQLPostgreSQL(versions7.3andabove)QSQLITE2SQLiteversion2QSQLITESQLiteversion3QSYMSQLSQLiteversion3forSymbianSQLDatabaseQTDSSybaseAdaptiveServerNote:obsoletefromQt4.7Qt通过QSqlDatabase类访问数据库。QSqlDatabase类代表对一个数据库的连接。QSqlDatabase类通过一个连接提供了访问数据库的一个接口。QSqlDatabase类的一个实例代表了一个连接。该连接通过QSqlDriver加载Qt支持的数据库驱动来访问数据库。另外可以通过继承QSqlDriver类来定义自己的数据库驱动。(二)测试条件操作系统:CentOS6.4(64bit)普通台式机Oracle:10.2.0.1.0数据量:10,000条、100,000条字段数量:2测试方法:增、删、改、查操作均按照一条一条执行的方式进行(三)耗时统计1、数据量为1万条时的测试结果如下:QtSql测试结果(1万条)统计次数操作内容1(s)2(s)3(s)4(s)5(s)平均(s)插入106108106119114110.6修改105104105107108105.8查询161513141514.6删除108105106107108106.82、数据量为10万条时的测试结果如下:QtSql测试结果(10万条)统计次数操作内容1(s)2(s)3(s)4(s)5(s)平均(s)插入110010861051107110601073.6修改115410701085107710691091查询153565711211298删除112110671106105610561081.2三、效率对比将上述统计结果汇总如下:OTL、QtSql操作数据库对比插入(s)修改(s)查询(s)删除(s)OTL116.812563.6128.6QtSql1073.61091981081.2由上述结果,显而易见,OTL操作数据库的效率明显要高于QtSql。因此,在对大批量数据操作效率有较高要求的情况下,OTL比QtSql更有优势。
本文标题:OTL和QtSql操作数据库效率对比
链接地址:https://www.777doc.com/doc-2848261 .html