See ObjectRelationalImpedanceMismatch
I probably have to find a better title for this. or perhaps RandyStafford can help.
Anyway here is his original argument:
Note: I have moved the referenced contribution of mine back to ObjectRelationalImpedanceMismatch because I feel it addresses many more issues than just anecdotal performance comparisons. I've no objection to future refactroring of that page, in fact I'd like to help, but I feel the last refactoring that moved my contribution from there to here was not done carefully enough. --RandyStafford
This should be easy to test. Sit two relatively competent developers down with the same requirements. One application programmer has VisualAgeJava + JFactor + GemStonej and the other has VisualAgeJava + JFactor + TopLink + a RelationalDatabase. Let them both develop their respective applications meeting the requirements.
Now, change the requirements in a way that involves a non-trivial schema change. Start the clock and see which one finishes first.
[The above is a test of development performance/efficiency.]
OO-to-relational mapping also has significant run time performance implications:
In some applications, typically with complex data models, OO databases outperform RDBMS' at run time. (Even if no OO-to-relational mapping is done.)
Also, while OO relational wrappers are generally very good for code reuse, runtime performance often suffers.
This is a non-argument. Performance depends hugely on the specific application and how its state is represented. You want to navigate trees of objects with algorithmic relationships? Use an OODB. You want to do big reliable transactional batch calculations? Use an rdB. Its like a motorbike versus a bus (I assume similes beat the 'no metaphor' rule). --RichardHenderson.
I totally agree with you there, Richard. I'm just now realizing, with horror, that I've spent all these years acting like a lower primate! :-) --RandyStafford
See also: AreRdbmsSlow