postgresql和oracle数据库对比

SQL执行计划干预

从使用postgresql来看,想要改变执行计划只能通过対表进行分析,不能通过添加hint的方式来改变执行计划;

oracle不仅可以通过对表进行收集统计来改变执行计划,而且很重要的一点支持通过添加hint的方式以达到自己想要的执行计划。

查询效率

从整体上比,不管是在离散数据的获取,还是在大数据量的统计分析,oracle的查询效率要好于postgresql,尤其在大数据量的统计分析(比较、排序、去重、表关联。。。);

有一个比较奇怪的地方是大表数据的加载,比方说link7的数据量有2G多,执行总数查询:

select count(*) from link7; -----------------------------第一次执行时间比方说120s;

在第二次执行时,执行时间可能是20s,但link7并没有全部加载到缓存中,只是有10%-20%的数据加载到缓存中,但执行时间缩短到了首次的1/10-1/9

--------我猜想的是应该是首次执行完后,加载了表link7的位置信息到缓存中,再次查询时,可以快速定位数据。

语法功能

在单条数据的功能上postgresql要强,尤其空间查询、转换,支持很多的方法函数

在统计分析上oracle要强,如分析函数、sql model等

数据加载

在使用门槛上,postgresql要简单,如数据导入导出,copy 表 to '' with csv; copy 表 from '' with csv;

在效率、多样性上oracle要强要多,如imp/exp、数据泵、sqlload等

事务

postgresql基本上自动提交事务,如果要控制自动提交,需要使用begin end;

oracle默认是需要commit才会进行数据持久化,或者执行DDL

总结体会

postgresql开源免费、单数据处理转换、查询比较适用

原文地址:https://www.cnblogs.com/lilei2blog/p/8602251.html