Skip to Main Content

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Al-KArim.

Asked: July 28, 2002 - 6:47 pm UTC

Last updated: February 28, 2025 - 7:05 am UTC

Version: 8.1.7

Viewed 1000+ times

You Asked

Would you happen to have a database feature comparision matrix
between postgresql and oracle.
I would really appreciate if you could provide me with one.
thanks.

and Tom said...

Nope.

You are going about this all wrong anyway. What you need to do is develop a list of what YOU desire in a RDBMS -- from features, to capabilities to options to other things like is it available on my platforms -- all that I'm on now and in the future, everything.

Then, you find the product you want based on your requirements.

When you go to buy a car, do you ask the BMW dealer to provide a feature by feature comparision to Volvo? No, you have a list of features you want -- you test drive the cars that have those features and buy the one that satisfies you the most.

Feature checklists for databases -- useless. They are out of date tomorrow (yesterday actually in all likelyhood). Also, subject to massive interpretation.


Rating

  (9 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

Maybe I'm strange, but that's the way I shop for a car!

Robert, July 29, 2002 - 10:44 am UTC

Tom,

Perhaps its because I'm on a limited budget and want to make sure I get the most for my money... but I do like to see a checklist of features among different cars which I may be consider buying! ;)

Thanks,

Robert.

Buy based upon cost per feature?

Jim Kennedy, July 29, 2002 - 1:22 pm UTC

Tom,
Excellent response.

First poster. So are you going to buy that car (BMW vs Volvo) based on who lists the most features and divide by the price the dealer gives you? UGH! So if a Volvo has a better parts to cost ratio than a BMW that makes a Volvo a better car? Or if you are a family of 4 and a BMW sportscar (eg M3) has a better parts to cost ratio than a Volvo station wagon or SUV type then an M3 is a better car?

(I don't want to start a car war, neither of these can I afford and I think they are both excellent manufactures.)

Robert you are partially right,

Samosa Kachori, July 30, 2002 - 1:02 pm UTC

>>Maybe I'm strange, but that's the way I shop for a car!

You are strange!
;-)

Being Multi-Lingual

Parthiban Nagarajan, August 26, 2010 - 4:31 am UTC

Hi Tom

PostgreSQL supports these many languages as a procedural extension to SQL
::: PL/pgSQL ::: PL/Lua ::: PL/Perl ::: PL/php ::: PL/Python ::: PL/Ruby ::: PL/sh ::: PL/Tcl ::: PL/Scheme ::: PL/Java ::: PL/R

Oracle provides only PL/SQL (Java Stored Procedures (or) OCI (or) etc. cannot be compared to the PL/SQL, I think. They still require PL/SQL wrappers.)

I think both the approaches of Oracle and PostgreSQL have their own advantage and disadvantage
(·) Many languages may result in confusion. For a PL/pgSQL developer, PL/Python may look very strange. So, hard to maintain the codes. This would result in negative effects for an organization.
(·) Many languages means the open-gate for a wide range of developers. A Perl developer would find PL/Perl much easier. A Scheme developer would find PL/Scheme much easier. This would attract a lot more programmers towards PostgreSQL than Oracle.

May I know your opinion about this?

Thanks In Advance

Tom Kyte
August 26, 2010 - 1:29 pm UTC

to create a stored procedure in Oracle:

You can use plsql
you can use java
you can use C
you can use c#, .net in general
you can call out to any external language you want using external procedures



now what? lots of languages, different from postgresql - but many languages.

Oleksandr Alesinskyy, August 27, 2010 - 2:58 am UTC

I have performed some test with PostgreSQL few months ago and have noticed a very fascinating thing - its insert performance is practically unaffected by the indexes on the table - by Oracle it degrades significantly by the index addition. On the table w/o indexes PostgreSQL was much (times) slower, on the table with 3 indexes - faster then Oracle, at least in my tests.

I am wondering how they achieved such behavior.

to Oleksandr

Sokrates, August 30, 2010 - 7:08 am UTC

RDBMS comparison

Carsten, August 31, 2010 - 3:59 pm UTC

@OP: Actually wikipedia has a basic comparison of various RDBMS systems by quite several aspects.
But as Tom suggested first make your wish list, then look for the best matching candidate. As always with wikipedia don't forget some own research on the last bits of information as not everything is accurate or up to date. But it will give you a good start.

regarding insert performance: Postgresql uses a different MVCC modell which does not cover indexes. This reduces the amount of data that needs to be written before returning a commit. The price you pay is that no query ever can be answered from the index itself: Postgresql always needs to look at the table row for MVCC information.

Oracle implements MVCC at a quite low level using undo tablespace for just everything. And undo is protected by redo. The price is additional IO for every commit. The benefit is that just everything works magically with MVCC as people expect it without thinking about it.
You will suffer from this model using autocommit. But then you might not need an ACID compliant RDBMS at all.

do it right the first time

Tom, September 07, 2010 - 6:28 am UTC

My guess is that the original poster is trying to justify any costs of using Oracle to his boss (who's probably saying, hey, here's something cheap over here, why not use that?).

Not bashing postgreSQL, but I've seen this situation before. Budget concerns leads to judgments based on price alone, and the company later finds out their db doesn't have the features (or doesn't scale, or whatever) like Oracle would (and gee, why can't we find qualified DBAs or developers on this platform?). Eventually, the question becomes, how can we migrate our backend systems over to Oracle?

So, I guess I'm saying that saving money initially may mean losing money over the long run. (and no, I don't work for Oracle ;)

Best of luck.

Database Tuning Expert

Mark A Polsgrove, February 27, 2025 - 6:53 pm UTC

The free PostgreSQL database seems to be 10 to 20 years behind Oracle. Our Oracle databases perform 20 times faster than our PostgreSQL databases.

Oracle allows you to suggest or force execution plans to be chosen by the optimizer using half a dozen techniques. The PostgreSQL community doesn't even understand why you would want to. They act like optimizers always calculate the cardinality correctly and pick the best execution plan.

You can join 25 tables together in Oracle and use the HASH hint when the cardinality is skewed by multiple filters and join conditions.

In PostgreSQL you have to create a dozen temporary (intermediate) tables to get a reasonable execution plan which still runs 4 times longer than Oracle to get the same result.


Connor McDonald
February 28, 2025 - 7:05 am UTC

Agreed.