[QDB]PostgreSQL 直连性能测试

QDAC.QDB 的 PostgreSQL 直连模块目前已经完成了70%左右功能的开发,所以就做了一个与其它能够连接 PostgreSQL 数据库的组件的性能对比测试,结果如下:

连接初始化的时间我没有进行统计,我们测试 QDAC、UniDAC、FireDAC 三者执行相同脚本所有的时间,以观察其相应的效率对比,为了将网络有影响降低到最低,我在本机特意安装了 PostgreSQL 9.4.1 来做测试。

【Select 测试】

从同一个数据集中取不同数量的记录(从10000条开始,每次倍增,总计有20万条记录,结果单位为ms):

条数 QDAC UniDAC FireDAC
10000 16 31 31
20000 32 62 47
40000 63 94 78
80000 110 203 172
160000 218 391 391
200000 313 500 625

从上面的结果看,随着数据量的增大,QDAC的性能优势逐渐显现,20万条记录时,性能已经与 UniDAC 和 FireDAC 拉开了距离。

【批量执行脚本测试】

由于 UniDAC 不支持直接批量执行脚本,而用 UniScript 执行脚本时,它是由自己拆分成一条条SQL送到服务器端执行,所以效率很差,在此就不与其对比。而 FireDAC 通过设置 DirectExecute 参数可以直接执行,所以对比就是 QDAC 和 FireDAC 两者之间进行,实际各插入10万条,实测对比结果如下:

  • QDAC : 7031 ms
  • FireDAC : 8125ms

QDAC 比 FireDAC 速度快约 13.5%。

【保存到内存流测试】

而将数据从数据库转换到文件流中,UniDAC 只支持 XML,100000 条记录测试,QDAC、UniDAC 和 FireDAC 的比较结果分别是 750、2390、625 ms,QDAC 的 Converter 暂时居中,将来通过进一步优化应该可以进一步提升。

分享到: