A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.
Strikes me that there's a lot of SQL Server and open source database people on the Joel forums, so I was wondering what impressions you folks have of Oracle -- whether you've used it or not (in fact, especially if you haven't).
I've been an Oraclologist for ... well let's a damn long time, so I'm not really in touch with people who aren't and I'd like to hear what impressions you have firsthand/secondhand/no-hand of Oracle corp's database product range. Strengths, weaknesses, barriers to adoption etc., all topics welcome
I've never used Oracle. I have used SQL Server and a handful of other databases.
For most of my needs my impression is that Oracle is way overkill and way too expensive. I don't think any of the custom db apps I've written for small businesses have database sizes of over a couple GB, or more than 20 concurrent users. These barely even begin to stretch the legs of SQL Server; why would my clients want to pay more for Oracle?
I'm working on a database app that's more of a shrinkwrap concept but I never even considered Oracle because my needs are covered by a capable embedded database with royalty-free deployment.
My overall impression is that Oracle's place is for very large apps (hundreds of GB's or more) that have high usage demands. Even for those larger apps my impression is that SQL Server can sometimes perform as well or nearly as well and with far smaller licensing fees.
I haven't used Oracle all that much but my impression of it can be summed up in three words, big, unwieldy, expensive.
Friday, May 06, 2005
I've worked with Oracle for a number of years, I've also used SQL Server and more recently MySQL.
I'd agree for small to medium size DB's then SQL Server is fine.
One of the thing's with SQL Server is it locks you in to a particular OS, with Oracle you can use pretty much any OS you like and it's (for all intents and purposes) the same on all platforms. I'm currently working for a client who have a Linux and Windows database, I can do the same thing one both and it works in exactly the same way.
Friday, May 06, 2005
OK, I'll bite.
I might come off as an "open source/MySQL" aficionado, but, if "money were no object", I'd definitely be using Oracle...
That being said, it's my understanding that Oracle is not the fastest database out there for raw querying, especially while under heavy transactional load...
That was my impression at least in the mid to late 90's... although since PC's have sped up monumentally since then, and because there are as many tuning options as there are with Oracle, perhaps this really isn't an issue anymore.
You made a good point a few posts ago with respect to using hashed clusters (on UserID) instead of multiple tables to segregate data in an app that might have 10,000 users. If I were using Oracle, that's definitely the way I would go also.
Stored procedures? I'd kill to be able to use Oracle PL/SQL on MySQL, but to date, I've found clever ways to avoid them. Still, the clever ways would amount to *huge kludges* if I were in fact using an Oracle system, and could do them with stored procedures!
So why not use Oracle? Very simple. I've been able to do what I need to do with MySQL, and I can't afford Oracle.
But if money were no object, I'd be using Oracle.
(Note: Before anyone decides to criticize me on "how cheap I am" (untrue), please note that I recently left the corporate world to work on my own product, which as of yet is unreleased (i.e., no profits yet). Don't call a person "cheap" before you know all of the facts. Thanks.)
Anyway David, now you have my perspective on Oracle.
It's awesome, but I can't afford it yet!
Also bear in mind that "Oracle" isn't just "Oracle" -- big companies are using things like "Oracle Payroll" to ensure everyone in all the different countries gets paid properly and the Oracle HR management tools and so on.
Friday, May 06, 2005
I've used both SQL Server and Oracle RDBMS. My impressions are that SQL Server is much more developer friendly and easy to administer. Oracle has more features and is clearly more powerful, but I'm not really sure how many shops need that power. The Oracle DBAs I've come across know their stuff, whereas anyone seems to think that they can administer SQL Server - no doubt a function of how easy to use each platform's administration tools are.
Oh, and anything Oracle sells that isn't RDMS-related, sucks. Their Java development tools are miles behind Eclipse (but getting better), their SCM offering is awful, their applications are appalling...
A few years back I ran the conversion of a number of systems from Oracle 8i to 9i. There wasn't a huge amount of effort in terms of data/system changes, mostly the logistical stuff. Then I worked to convert a toolset to use both Oracle and mySQL.
Immediately prior and after that, I used MS SQL, but I didn't consider myself as "knowing" SQL until I worked at the SQL+ command line for a year or so.
Now I'm entirely in mySQL. The biggest two weaknesses are: 1) lack of nested queries and 2) lack of triggers/cascade deletes.
If money was no object, I could manage it myself, and the tools were available, I'd probably go to Oracle for lots of my stuff. Since the first two prevent the 3rd one from happening in the Open Source community, I'll stick with mysql.
Friday, May 06, 2005
Good job guys, that's interesting stuff.
So I see a lot of people mentioning cost, and a couple of system management issues. I guess that most of the OS databases are zero-cost purchases (right?)
Well there's no denying that Oracle Enterprise Edition is a pricey piece of kit -- $40k per processor perpetual, which I think is around twice the price of SQL Server EE. (Interesting to find out that if I weren't using their free development license then I'd have around $70k of Oracle software on my laptop, what with all the other options. *glurk* ). But anyhoo I think they're on some kind of price-matching gig with MS on the standard edition, around $5k/pp, or $149 per named user perpetual -- is that still too much? What do you reckon your own clients would pay per head?
Let me float out a theory here -- smaller software houses people want to keep their front-end development as database independent as possible, and that means they don't want to use the features built into these systems that they'd pay for as part of the package (flashback query, encryption, advanced queuing, workflow etc)? Would you use these features?
Oracle used to be heavy pushers of Oracle on Windows, but they've been singing with the Linux choir for a while now -- I seem to recall a press release a while ago saying that they were now 100% linux within the corp. Eating their own dogfood, I guess. But it's the same on every platform, so I'm developing on XP Pro for a production system hosted on HP/UX 64bit.
Anyway, thanks for the feedback fellas. Let me give a recommendation of http://www.dbasupport.com/forums and http://asktom.oracle.com if you have any Oracle issues -- there's a lot of voodoo BS talked about Oracle management and performance but these are good sources.
Lots of people seem to focus on the power of Oracle versus the power of other RDBMSes, which is an appropriate comparison. But what bothers me most about Oracle is the difficulty for a non-Oracleologist to get something simple working well. With SqlServer and Postgres (the two other databases with which I have the most experience), I can get something simple working well by either clicking around in the tool or by reading some straightforward docs. With Oracle, it seems to me like the analogous approach is to hire an Oracle-certified person, who does a bunch of (to me) arcane stuff.
I should say, there are a few Oracle-isms that I really like, that I miss in other RDBMSes - partitioning, bitmap indexes, and materialized views are the ones that come to mind immediately. It's possible to do (some of) these in other RDBMSes, but it's not as straightforward.
All this said, I don't understand as much about the actual setup and maintenance of an Oracle database as I'd like - it may be that the things that bother me would seem perfectly reasonable if I understood what was going on. But it seems like the path to get there is far more complex and convoluted in Oracle than SqlServer and Postgres - the installed defaults are too-often wrong or inconsistent, the necessary installation and maintenance tasks are too difficult to discover, etc.
It just seems to me like the tool is designed to provide job security for Oracleologists, instead of designed to provide maximal value to its customers.
>> It just seems to me like the tool is designed to provide job security for Oracleologists <<
Boy, you manage to make that sound like a bad thing!
Actually there's a lot of discussion everytime Oracle automates or elimninates some other element of system management ... "Are DBA's no longer required?" ... but the trend is usually that while the low-level stuff has got easier or gone away entirely (space management, freelist management for example) there's now a shit-load of other features (MV's, query rewrite, XMLDB) that someone in a company has to be the expert on. So call me an idealist, but a DBA ought also to be an educator and team player as well. Sorry if that made you squirt coffee out of your noses, bit contraversial, right?
I think that 10g has finally broken through that management barrier, and it's very feasible to create a database with a single tablespace for application data and index storage on a single data file, and as long as the disk array will support it you can easily go over 30Gb with a configuration like that. A lot of it's self-tuning now, as well.
>> So call me an idealist, but a DBA ought also to be an educator and team player as well. <<
Yes, I agree with that, and I've worked with a few DBAs who fit that role. But I've typically worked at small companies trying to make things work on a bunch of different RDBMSes, and we've never had enough steady work for a good DBA to do. With other RDBMSes, we've been able to fumble around and get something working relatively easily. We've learned to get the basic things working as we want them in Oracle, but it took much more effort, and we're not as confident in the result as we are with our other RDBMSes.
That said, most of my experience is with 8.1, a little with 9i, and none with 10g. It's good to hear that it's getting better.
I've used Oracle _lots_ over the past few years. The thing I like about Oracle (and DB2, and, umm, nothing else I've worked with) is that every performance problem is solvable. Grab a suitably pointy-headed Oracle DBA and he can tune the bejesus out of the database in ways you just can't with MySQL or MSSQL.
Sure, it stinks that Oracle out of the box will require that tuning, but hey, we're grownups. I wouldn't expect some random person to walk in the front door and configure a bunch of Cisco hardware perfectly either.
What I absolutely hate about Oracle is their perpetual sales focus. I'll read about some awesome new feature or product offering that will solve a dozen nasty problems I have, and will be out in the next version. I buy the next version and upgrade, and find out that no, it doesn't really work yet (but often will in two or three releases), or gee, it's just about as painful as the workarounds I used previously. OPS and Instant Client, I'm talking to you!
Friday, May 06, 2005
Is anybody actually using the grid computing features in 10g? Are there any, or is it clustering in disguise?
I worked for a place that was using SQL server 6.5 and Access97. They were looking to upgrade to either Oracle 8i or SQL Server 7. We set up computers with identical hardware and identical DBs (no tuning at all, straight out-of-the box). 8i was 4-20 times faster than SQL Server 7.
The final decision was to use SQL Server 7 because supplying the developers with tools to work with Oracle was too expensive.
Friday, May 06, 2005
>> We've learned to get the basic things working as we want them in Oracle, but it took much more effort, and we're not as confident in the result as we are with our other RDBMSes. <<
You'd think that there's be someone offering a service in basic Oracle install/config/initial tuning at a reasonable cost, but I haven't heard of it. But I haven't really been looking either, to be honest. It'd even be cool if you could just ship a server to someone and get them to spend a day getting it all up and running then shipping it back to you. I know that Dell do servers with pre-installed Oracle, but that's not quite the same thing I guess.
>> What I absolutely hate about Oracle is their perpetual sales focus. <<
Yeah, they're as guilty as the next guy of stuffing these features in there. A lot of them (like advanced queuing) actually come from generalizations of enhancements done for a particular very large client, so they're not always the perfect design.
>> Is anybody actually using the grid computing features in 10g? <<
Not many, no.
>> The final decision was to use SQL Server 7 because supplying the developers with tools to work with Oracle was too expensive. <<
what tools were they Pete? Like JDeveloper or something?
I'll chime in on this:
I have a client that has Oracle instances but the application using it is in need of updates as well as their hardware. More users & more transactions. This is Oracle 8. To go to a "support model" we would have to go to oracle 9i or 10 and the uplift is very expensive.
We first considered MS-SQL since this customer is small. 50 simultaneous connections with roughly 1,000 transactions per minute including stored procedures.
Now, with PostgreSQL for Windows, we are considering that instead -- despite the Windows Magazine rating a year ago or so where MS-SQL received high marks.
PostgreSQL offers great support under Linux and I've been playing with the Windows build which seems very capable and stable. The stored procedure language of PostgreSQL, PL/PGSQL, is nearly identical to Oracle's PLSQL.
I am 80% sure I want to move them to PostgreSQL on either Windows or Linux after their hardware upgrade.
My opinion of Oracle is that Oracle is more suited for the FedEx's of the world. Where there are billions of transactions, concurrency issues, and, more than anything, you need SUPPORT and someone to point the figer at when shit goes wrong. I run into the support issue more than anything when I deal with Oracle customers. Aside from the support, Oracle is simply just too expensive for small companies anymore.
I use less and less Oracle. One of my clients I contract too is a very large company (Global) and they use Progress. I'm working with them to take them to PostgreSQL instead of Oracle.
Friday, May 06, 2005
50 connections = 50 users, Josh?
"The Oracle DBAs I've come across know their stuff, whereas anyone seems to think that they can administer SQL Server - no doubt a function of how easy to use each platform's administration tools are."
True, I started as a green sql server dba. I knew shit about being a dba or dbms's. I relied on the wizards in enterprise manager and things worked out. I'm pretty proficient now. You just can't do that and keep an oracle system running long enough to learn your craft.
That is both a testament to the ease of use of sql server and a curse as you'll have idiots like I once was in charge of your production database
Sunday, May 08, 2005
I prefer Sybase Adaptive Server Anywhere. Zero administration, yet comparable to Oracle and SQL Server.
Sunday, May 08, 2005
Um, no! 50 users <> 50 connections necessarily when you have multi-threaded application that creates 2-4 connections to the backend. One for queries/application, one for reports, one for some log reader... If I'm wrong here, let me know. NOTE: I am making a distinction between connections and licenses which Oracle, from a financial stand point, is more expensive as well.
Also didn't write the, app, we are only replacing the app with our ERP solution. When we studied the Oracle environment we looked at there transaction size & frequency which is ROUGHLY 1,000 per minute. They have 50 workstations and more than 50 sqlplus / oracle processes on their backend.
Monday, May 09, 2005
I've used an Oracle 8 (22.214.171.124, IIRC) install, and PostgreSQL 6.5,7.2,7.3 and 7.4, and dabbled in MySQL at times.
Oracle 8 is.. annoying. SQLPlus desperately needs "Readline" support added to it to be usable (IMO).
Oracle 9i (the last I had on a development machine) was much much nicer, in many ways. I could figure out how to install things, and I was rather pleasantly surprised to learn that the management tools would work against Oracle 8 installs, too.
That said, Oracle still has some annoying "features" that make me not want to explore it very much. The first that comes to mind is the fact that NULL values, and empty strings, are treated equivalently, for VARCHAR columns. After using Postgres for a while, not having to make that kind of a distinction is really nice.
The fact that the development tools, user community, etc, all seem much simpler and more approachable by someone who isn't truly a DBA make the open source toolkits my tools of choice.
The price for a replicated (master/slave) system in PostgreSQL is, roughly, 0. I think, if I do the math right, the software alone is $160k to do that with Oracle. (2, 2-processor machines). Sorry, but Postgres wins in pretty much every way when doing a TCO analysis on that.
If you want sqlplus with readline support, you want gqlplus, http://gqlplus.sourceforge.net/
Most irritating thing about Oracle? The hoops I have to jump through with large datatype support. In a Postgresql DB, I simply create a text field, and it acts like a regular column to the programmer. Clever stuff may be happening under the hood for large items, but I neither have to know or care about it.
In Oracle I create a CLOB and I have to think about how to handle it differently to, eg, a VARCHAR, in my application development (queries, and JDBC/TCL/C interfaces) and my tool use (sqlplus et al).
Best thing about Oracle? A toss-up between MVCC and what a ood DBA can do to make it sing.
Monday, May 09, 2005
>> The price for a replicated (master/slave) system in PostgreSQL is, roughly, 0. I think, if I do the math right, the software alone is $160k to do that with Oracle. (2, 2-processor machines). Sorry, but Postgres wins in pretty much every way when doing a TCO analysis on that. <<<
hmmm, not sure about this one. That's a functionality of Standard Edition I believe, which should not be costing you $160k
Tuesday, May 10, 2005
It's been a while since I looked into Oracle pricing.
I'm pretty sure that with Oracle 8 (not even 8i), we needed enterprise edition to get replication, and that's why I did the math that way.
If that's no longer the case, that does definitely reduce the pain of licensing.
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz