On Wed, 1 Sep 2004 21:26:07 +0200, Dieter Maurer <dieter@handshake.de> wrote:
When I had to work with Oracle 3 years ago, I have been *VERY* disappointed (this was Oracle 8i). Despite its high costs (100.000 USD), it was almost unfunctional:
I agree that Oracle is extremely expensive, but there's a few key advantages: - It's designed for large systems and has very good tools for managing databases. - It's easy to find DBAs that are extremely knowledgable about Oracle. The second, for me, is key. Software developers should not also be trying to manage an RDBMS.
* memory corruption inside the Oracle client libraries brought our Zope down within minutes of use
Haven't seen this since we stopped using Oracle on Linux, and even then, it was far far less frequent than that - maybe once a month or so.
* the Oracle server died often, non-deterministically, after some amount of work
Haven't seen that with Oracle on Solaris, ever. On Linux, we'd _very_ _very_ infrequently get strange things going on - every couple of months.
* the Oracle client library caught SIGCHILD making "system" and "popen" unreliable -- this could be fixed with a special configuration option, deeply hidden in the tons of Oracle documentation
Can't see I've ever seen that.
* full-text reindexing after large imports often crashed non-deterministically
Again, haven't seen that, ever.
* upgrading from one Oracle version to the next Oracle subversion was a nightmare
See, I've found the opposite - one of the strengths of Oracle is that this stuff is _well_ understood and documented. We do upgrades, sidegrades, point fixes and the like, all the time. Well, when I say "we", I mean "our DBAs". I wouldn't let them write code, and in return I don't expect to manage the database. They're different jobs, requiring different skills.
* some combinations of relational and full text subqueries let Oracle forget about its indexes. For example: while a query "Q1 and Q2" took seconds (Oracle recognized that it had indexes) the query "Q1 or Q2" (with the same "Q1" and "Q2") took days (!) (because Oracle had forgotten about the indexes and used full table scans -- which is a bad idea with hundread of millions of records and hundreds of gigabyte of data).
Did you use the "explain plan" functionality? Was this with the rule-based or cost-based optimiser?
The Oracle support was unable to fix this problem within half a year. Oracle recommended to avoid the combination of relational and full text subqueries !
Oracle's support can be annoying, yes. Fortunately, I just let the DBAs deal with it - they know how to get the information from Oracle's TAC.
Now, I use Postgres -- and I am *MUCH* happier: I have at most 1 per cent of the problems I have had with Oracle. And this with no costs and no support (but the amount of data is smaller now and there are no full text queries (that were responsible for most of Oracles problems)).
I like postgres, but my main problem is finding DBAs with sufficient PG knowledge. This, to me, is a key thing. If the business _depends_ on the database, you really really need a high clue level in the people managing it. Having said all that, and lest I seem like a reflexive Oracle supporter, it often drives me screaming with frustration up a wall. But I have the same sorts of issues when using postgres - usually it's the query optimiser doing something stupid, and you can examine the optimiser and figure out what's going on. Usually it's just an index hint that's needed. And Oracle's approach of "Oh, that _obvious_ piece of missing functionality? You need enterprise edition for that" pisses me off, no end. EE costs an utterly utterly indefensible amount of money. Anthony