I know it's a pretty popular view to skewer Oracle, considering how much money they make from licensing and how little they seem to do.
From the other side, I work at a medium-sized consultancy that handles Oracle databases as well as other products. I work with open source, big data technologies (Hadoop, Mongo, Cassandra), and I talk to some of our top Oracle guys sometimes. Oracle does everything, and it does it damn-near automatically - look at the concepts guide (http://docs.oracle.com/cd/E11882_01/server.112/e40540.pdf) if you want to see how many types of JOIN an Oracle DB can choose from. Exadata has more, I think, and half the performance stuff isn't even documented, it's just buried in query plans. I'll tell an Oracle guy, "hey, we just got hash-bucket joins", or skip scans, or some other enhancement, and it's like the OSS competition is still in the 90s compared to what Oracle can do.
You can complain that Oracle charges a lot of money, but in a lot of cases it's NIH syndrone. Drop in Postgres instead, then spend 6 months tuning it, or spend the difference buying extra hardware to scale out. Roll your own ERP, and forever have a small dev team of 4 guys who cost you half a million dollars to support it, because you didn't want to buy off-the-shelf, because your pride as a developer stops you from learning someone else's tool.
I spent many years bashing Oracle. Sometimes it's for the pain of the installer being different to deploying open source software, other times it's for the bill the company had to pay to Oracle. Then I actually started working with the database product, and this was to use Oracle to be a warehouse for MongoDB data. The experience has made me fairly positive of the Oracle product, fairly keen to avoid MongoDB in general, and has also spoiled my experience of MySQL and Postgres since because of features I've been spoilt with.
For me, it's mostly performance features: Last time I checked, Postgres' query planning was based only on the rather configurable, yet completely static stats tables and a few config parameters, and it didn't care very much about its experience running queries. So if for some reason I can't add quite enough stats gathering, and I know a often used query is still slow, my only choice to fix it is to do some really terrifying things to the code so that the join order is dictated by the query.
In Oracle, not only is the DB going to actually look at the query's real performance by itself, but i can just tell it to change the way it runs at runtime, if all else fails.
There's also data warehousing tricks that, AFAIK, Postgres does not support. In Oracle, if I have a star pattern, I can make the queries run without actually touching the fact table, only querying indices.
That said, exadata is voodoo, compared to how much more predictable Postgres' behavior is. But there really is a case for it if you really are building the DB equivalent of the Titanic.
> and forever have a small dev team of 4 guys who cost you half a million dollars to support it
You lose me there. Don't tell me I won't need people to run my Oracle databases. Moreover, I'll need "Oracle" people, who earn 2x what those other 4 guys earn.
I think gp's numbers are off. But for sure, if you need ERP anywhere near the scale of what Oracle offers, it'll definitely cost more in the long- and short-runs to ROYO.
From the other side, I work at a medium-sized consultancy that handles Oracle databases as well as other products. I work with open source, big data technologies (Hadoop, Mongo, Cassandra), and I talk to some of our top Oracle guys sometimes. Oracle does everything, and it does it damn-near automatically - look at the concepts guide (http://docs.oracle.com/cd/E11882_01/server.112/e40540.pdf) if you want to see how many types of JOIN an Oracle DB can choose from. Exadata has more, I think, and half the performance stuff isn't even documented, it's just buried in query plans. I'll tell an Oracle guy, "hey, we just got hash-bucket joins", or skip scans, or some other enhancement, and it's like the OSS competition is still in the 90s compared to what Oracle can do.
You can complain that Oracle charges a lot of money, but in a lot of cases it's NIH syndrone. Drop in Postgres instead, then spend 6 months tuning it, or spend the difference buying extra hardware to scale out. Roll your own ERP, and forever have a small dev team of 4 guys who cost you half a million dollars to support it, because you didn't want to buy off-the-shelf, because your pride as a developer stops you from learning someone else's tool.