Data Management optimize

Oracle is the T.O. of Software


Oracle is the Terrell Owens of software: you absolutely despise playing with it, but its performance is almost good enough to make up for its unforgivable manners. Almost. Today I had the misfortune of having to perform some development work with an Oracle database. I had not touched the Oracle client installation on my desktop machine in months, except to update the Oracle .Net tools a few weeks ago. I updated them, but had not used them. When I tried to make a connection to my development database, the drivers were just giving me a big "New York Greeting." I never did resolve the problem; I kludged together a work around. I ended up just using a different system on my client's VPN and working with their development database. I put two hours into resolving the problem, and simply did not have anymore time to waste.

Over the last year or so, I have spent well over 40 hours wrestling with Oracle. That is a full 2% of my yearly productivity devoted to nothing but trying to get their "tools" to stop giving me grief. I can easily chalk up at least another 20 hours over the last year trying to find error in SQL statements that Oracle does not help me find. "Missing right parenthesis" is not very helpful when one is doing a JOIN on 106 subqueries. MySQL is nice enough to show me exactly where the problem is in the error message.

And then there is the sewer known as "sqlldr.exe." Another complete waste of time to deal with. Again, comparing to MySQL, I have to write a script file to do what MySQL can do in one "LOAD DATA INFILE…" statement. Even the command line for sqlldr is complicated. For whatever reason, my current working directory needs to be the data directory, or else the files do not seem to be found.

Oracle Enterprise Manager is pretty foul too. It has menu and toolbar items that tell me to go use "Oracle Enterprise Manager Console," which, despite its name, is not the same program, but a Web based app. The software itself barely works. It leaves a Java console window in the background, which is constantly spitting out various uncaught exceptions. The software has a positively miserable interface. Its worst habit, though, is dropping the first character typed into any text box. I have never seen that kind of behavior in any other application.

Even the Oracle client is a shrew. Each time you install an Oracle product, it tramples all over the file permissions on the client, rendering it unusable. Due to a quirk in Windows' file permission check system, after correcting the problem you need to reboot your PC. Oracle is the only database that requires a monstrosity of a client; it is like Novell Netware circa Windows 3.1. Do not even get me started on the idiotic tnsnames.ora file contraption. Talk about a manageability nightmare! Every other database out there just needs to install a small ODBC driver (or JDBC driver in a convenient JAR file, for Java developers), make an ODBC connection, a poof, you are connected. Not Oracle. It needs to turn your computer into a mess, and you still need to create the ODBC connections anyways.

Dealing with the Oracle corporation itself is a David Lynch film at best. Their Web site makes it clear to me that they are not interested in helping me. The search system on their Web site is horribly broken which reflects quite poorly on their database products. Trying to find updated tools and drivers is a hassle. Not that they update their tools very often, Oracle has a poor track record at bug/security fixes. And again, when you do update the tools (using their awful Java installer, which takes two minutes just to start, and always gives me grief about where to install stuff), it destroys your existing setup, requiring a three hour trip down search engine lane to fix the problems.

I am not even sure if Oracle's performance is that great. Microsoft SQL Server, when properly configured, can be pretty fast, close to and occasionally exceeded Oracle's. MySQL is catching up very quickly, and PostgreSQL is no slouch either. And all of them are infinitely easier to deal with than Oracle. Oracle's dominance of the database market is proof positive that the people who make IT purchasing decisions are not the people who have to live with those decisions. Why is it that there are no MySQL, PostgreSQL, or SQL Server consultants billing out at $250/hour, but there are Oracle consultants doing so? What does that tell you about Oracle?

Oracle just does not get it. When your developers tell you that using Oracle over another database makes development take 10% longer, or your DBAs cost you 25% more, or management on users' desktops is 250% more difficult, or integration costs are $250,000 versus $10,000 for anyone else, eventually you are going to start to wonder if a 5% performance edge is worth it. I do not think it is. In its current state, I would not recommend Oracle to anyone. I simply fail to see its advantage, and I have yet to hear from a developer who likes dealing with it. The only people I have talked to who like Oracle are billing out at divorce lawyer rates to integrate and support it.

I would love to hear your Oracle horror stories, or any defense of them.

J.Ja

About

Justin James is the Lead Architect for Conigent.

5 comments
jmgarvin
jmgarvin

It has funky connectors for the clients, it's interface is very old feeling, TOAD is evil, and there are performance issues that can't be solved unless you pay out the yang to have Oracle PSO come out and "fix" it.

robo_dev
robo_dev

from a security perspective, it has more security holes than the annual output of a Swiss cheese factory. These holes can be mostly fixed, but it takes time/expertise to get it right, providing a wealth of opportunities for those individuals whose livelihood depends on fixing this sort of thing. :) On the positive side, Oracle has lots of nice reporting tools and features that make it easy to do a security assessment of a database instance....much much easier than Sybase, DB2, or MS-SQL.

Tony Hopkinson
Tony Hopkinson

previously been sqlserver and sybase, with a bit of Informix thrown in, I always put it down to me not knowing it vagaries. Interface and tools wise it always seemed a bit eighties to me. 18 months of it can't say I'll be real sad if I never see it again. Speed wise it seemed to me, to be buried under it's own features in 2001. Haven't used it since and don't want to.

HaggardPete
HaggardPete

I am a database developer with a decade (ok more) of experience with both Oracle and SQL Server. However I am losing patience with Obstacle. Just 10 years ago Oracle was the definitely the most credible solution for high data volume storage. However things have moved on and Oracle has not. Remember that U shaped software life cycle graph with bugs on the vertical axis and time on the horizontal? New applications start with lots of bugs, over time these are fixed and the chart settles at the bottom of the "U". After a while maintaining the software starts getting harder as changes accumulate, knowledge is lost environments change and so on until fixing one bug adds 1*n bugs. This is surely where Oracle is now. This doesn?t sit well with you? Log onto Oracles Metalink and search for ?WRONG RESULT? You will probably be horrified by the number of situations where recent or current Oracle versions can simply return the wrong answer. Honestly, if SQL Server had just one un-remediated bug like this there would be nay-sayers slagging the product off from the rooftops. So Microsoft test properly, are careful about adding new features and release ever more stable products. Oracle on the other hand just hide the evidence on a secured website only accessible by customers who have already bought the product I have worked with three large Oracle shops in the last three years, and every one of them had major outages during the time I was with them. Sorry none of them were my fault - Oracle is just that flaky Concerned about performance? There are a lot of un quantified assertions by Oracle devotees to the effect that Oracle is faster than any other DBMS. I guess none of these guys has installed Oracle and SQL server on identical machines. If they did they would be in for a shock. I have done this, and out of the box comparing straight forward selects SQL server is almost always faster. Its easy to see some reasons why this might be so - with clustered index?s and more efficient data types data types SQL server simply has to do less I.O. However the Oracle cost based optimiser has a lot to answer for. Even Oracle recon that joining more than four tables is a bad idea. Even if your lucky enough to have up to date statistics the optimiser may or may not pick the best plan. Compare with SQL where statistics are maintained by default and joining a dozen or more tables works just fine. I do believe that under UNIX and a with database tuned for specific queries Oracle offers the potential for faster performance but frankly I am foremost a developer ? and I expect my DBMS to serve me not the other way round. I am also not happy about reconfiguring an entire database just to make one particular query run better - what about all the other queries There is a lot to praise in Oracle and I love the way you can do almost anything in PL/SQL. Still a DBMS is worthless if isn?t reliable, can not be trusted to give the right answers and takes all your time just to deliver decent performance.

MyopicOne
MyopicOne

I'm a DBA from a Developer background that has administered both SQL Server and Oracle for over 12 years. SQL Server since 2000 is simply a better product for all uses except those requiring a high transactional volume. Administrative burden is at most 10% as much, much faster and easier to install, easier to make self-maintaining out of the box, easier to set up redundancy; with a typical corporate MS Licensing Agreement it is so much less expensive to implement the comparison is laughable. Oracle's licensing is very restrictive (read expensive) regarding developmental and standby databases. In my experience from a performance perspective only SAP at peak usage has challenged SQL Server, and we hadn't even clustered it yet. And regarding Metalink, don't you just love clicking on an article found in a search only to find out it's private? But even after slagging the DBMS, it's still a FARRR better product than one Oracle brand application. This one I have administered for 8-9 out of the last twelve years. Despite two major releases, at least six minor releases, and at least a hundred patches, including three technoology stack replacements, there are still unfixed bugs that have been around for over 8 years. I haven't seen the database return incorrect results yet but when and if I do, the support schlep on the other end of the phone will never forget my call.