Possibly stupid question



  • What is Oracle better at than the alternatives?  Is there any legitimate business case for choosing Oracle? Aside from legacy applications and salespeople working their voodoo on clueless business types, why is it so widely used in "enterprise"?

    (Yes, I ask this question from a position of extreme ignorance, having worked almost exclusively with MySQL and Postgres, and never on anything "enterprisey".)



  • @sprained said:

    What is Oracle better at than the alternatives?
     

    Nothing.


  • Discourse touched me in a no-no place

    @dhromed said:

    @sprained said:

    What is Oracle better at than the alternatives?
     

    Nothing.

    Well, now, obviously that's just not true.  It's very effective at extracting money from your wallet.  Unfortunately, it's not as entertaining as when a stripper does the same thing with lap dances.



  • @sprained said:

    Yes, I ask this question from a position of extreme ignorance, having worked almost exclusively with MySQL and Postgres, and never on anything "enterprisey".
     

    Oracle groups related database objects into tablespaces which exist as one (or many) files physically located on a disk, so can be assigned to specific locations according to reasons such as reducing disk contention, optimising throughput with storage of different types, etc. The management of them is also fairly dynamic, so space can be increased or files shuffled around without downtime. As far as I know, MySQL dumps all its objects into files in a predetermined location without thought to the different object types (tables, views, indexes, SPs, etc).

    Oracle's toolset is more advanced. I've not used MySQL Workbench, but for years the only front-end on offer in the MySQL world was phpmyadmin or third-party utils (sqlyog, etc). Oracle provided tools to manage networking, client connectivity, database creation and manipulation as well as instance management. The backup tools - including recovery from data corruption when in LOG ARCHIVE MODE - feel more superior than the ones I've used in MySQL (but admittedly, I ain't used a great deal, mainly command-line stuff).

    There are also many other performance, analytical and reporting tools on the health of an instance. However, these come at a cost.

    Security is tighter: each instance consists of users and roles constrained to that particular instance. MySQL treats a user as someone that may have access to more than one database. Oracle can also tie OS users and groups into its security model; I'm not sure if MySQL does.

    Whether or not it's better - jury's out on that one. I know many differences between them and each have their pros and cons. I often find myself wishing $RDBMS[0] had ${feature} that $RDBMS[1] has.



  • Feh. Anything looks good when compared to MySQL.



  • Surprised by that comment - MySQL gives a lot more feedback than Oracle and feels more user-friendly at the command line, offering details about configurable parameters and usage statements when trying out commands lacking arguments.

    It's also possible to report information using a smaller number of more intuitive statements in MySQL than a long convoluted queries that extract metadata from system tables, in the case of Oracle.

    As an example, "SELECT table_name FROM user_tables" in Oracle can be written as "SHOW TABLES" in MySQL.

    Between the two, I feel MySQL is the younger family member, eager to do things and will happily take a few suggestions then run with them but is limited in experience.  Oracle is the much older and wiser parent, capable of much more but you've got to phrase your request carefully and politely before it will be bothered to put its paper down and acknowledge your impertinent interruption.



  • @Cassidy said:

    Oracle is the much older and wiser parent,
     

    Yo fat momma, you mean.



  • I keep telling you, she's not overweight, she's underheight!



  •  Certain 3rd party applications only run on oracle (or SQL server or both) but not on MySQL or PostgreSQL. Hence you have no choice except not buy said application. But there are areas that have a limited number of suppliers and if all do the same (eg only SQL Server or Oracle) then you are f*****. In my field of work to perfrom the important type of search the database needs to be "extended", eg. some complex functionality added and that explains why it can't be easily ported.



  • @beginner_ said:

     Certain 3rd party applications only run on oracle (or SQL server or both) but not on MySQL or PostgreSQL. Hence you have no choice except not buy said application. But there are areas that have a limited number of suppliers and if all do the same (eg only SQL Server or Oracle) then you are f*****. In my field of work to perfrom the important type of search the database needs to be "extended", eg. some complex functionality added and that explains why it can't be easily ported.

    Why would I buy a vendor package that makes me supply my own database (and only a specific, expensive one at that)? If people are doing this, they're idiots. I think a far more likely scenario is for commercial software to (quietly) use some sort of free database.



  • Oracle's RDBMS can do a lot of stuff many/most/all other databases don't.

    Features like analytical functions and flashback queries come to my mind. PL/SQL is arguably the most complete and most powerful language for stored procedures to be found in any RDBMS.

    That said, if an other database does what you need it to do, there is probably little reason to switch to Oracle.




  • @bridget99 said:

    Why would I buy a vendor package that makes me supply my own database (and only a specific, expensive one at that)? If people are doing this, they're idiots. I think a far more likely scenario is for commercial software to (quietly) use some sort of free database.

    Yes. We have a vendor right now that has quietly chosen to use an Access database (which is [i]effectively[/i] free in an institutional context that relies on MS Office). I love that vendor. I have a picture of their staff on the wall. Complete with dart holes.

    More to the point, most enterprise software packages are designed by committee with all that entails.



  • @ammoQ said:

    Features like analytical functions and flashback queries come to my mind. PL/SQL is arguably the most complete and most powerful language for stored procedures to be found in any RDBMS.

    You can write MS SQL Server procs in C#.

    Game. Set. Match.



  • You can write Oracle stored procs in Java. I'd call that a draw :)

    But mostly people don't, and that's the winner ;)



  • Yes there can be legitimate business cases for Oracle. There are situations where other products will be better, some where they will be equal, and others where Oracle wins despite the costs.

    Firstly, the 'Shared Disk' RAC architecture. Shared disk means you can have multiple servers running the same database, either to spread workload or for redundant, and don't have any sharding to manage. Oracle handles getting the data from the disk to whichever machine needs it, and handles locking and conflicts. It has its own complications, but is pretty solid.

    Secondly, it is a 'Swiss Army Knife' out of the box. Everything is included (though you may need to pay more to use some 'tools'). You've got Spatial, Document handling, Image Handling, XML. It scales from the freebie 'XE' edition, which I run on my netbook, up to the dedicated Exadata hardware. The database actually includes both a web server and an FTP server.

    Thirdly, and the bit that is currently paying my income, is it has a web based programming environment built in. In Application Express (Apex for short) you develop and deploy through the browser. They are moving (slowly) into 'cloud' and what they have is a Platform-as-a-Service product that they've been developing for almost a decade. The application I work on doesn't have PHP/Perl/java/Python, but it solid Oracle down to the OS.

    Fourthly, Oracle has been in the game a long time with a massive market share. Which means there's plenty of people around with Oracle skills. I worked at one place that had looked at Postgres as an option, but passed on it simply because there wasn't a solid supply of experienced staff. Also, staff experienced with Oracle have probably picked it up in a big Enterprise environment. Companies like to be able to get people with a matching background.

    In many cases, Oracle is a sledgehammer to crack a nut. But it does allow a company to have a single database platform that they can use to meet pretty much any requirement they have.



  •  My reasons for using Oracle DBMS vs mysql or postgres:

    - PL/SQL

    - RMAN (how do you teach postgres compressed, incremental online backup, just out of curiosity?)

    - Application Express (APEX)

    - Partitioning (Enterprise Edition Feature (swapping tables with partitions, compression, etc.), postgres uses triggers AFAIK)

    - Table Compression (SE1 and above)

    - statspack (or awr), tkprof

     

    l.



  • @blakeyrat said:

    @ammoQ said:
    Features like analytical functions and flashback queries come to my mind. PL/SQL is arguably the most complete and most powerful language for stored procedures to be found in any RDBMS.

    You can write MS SQL Server procs in C#.

    Game. Set. Match.

    If I pile up enough money, I'll never have to think about that lobotomized language or the braindead weirdos who use it ever again. Checkmate.


  • :belt_onion:

    @bridget99 said:

    @beginner_ said:
    Certain 3rd party applications only run on oracle (or SQL server or both) but not on MySQL or PostgreSQL. Hence you have no choice except not buy said application. But there are areas that have a limited number of suppliers and if all do the same (eg only SQL Server or Oracle) then you are f*****. In my field of work to perfrom the important type of search the database needs to be "extended", eg. some complex functionality added and that explains why it can't be easily ported.

    Why would I buy a vendor package that makes me supply my own database (and only a specific, expensive one at that)? If people are doing this, they're idiots. I think a far more likely scenario is for commercial software to (quietly) use some sort of free database.

    Situation at my current employer: my current employer sells financial services to their clients. The clients can install an in-house developed package to interface with the back-end. That software requires an existing SQL Server to be installed on premise.

    There is no alternative package: either install the SQL Server, do without the package or switch to another service provider alltogether

     



  • @bjolling said:

    Situation at my current employer: my current employer sells financial services to their clients. The clients can install an in-house developed package to interface with the back-end. That software requires an existing SQL Server to be installed on premise.

    There is no alternative package: either install the SQL Server, do without the package or switch to another service provider alltogether

    This is more common than some people would like to believe. I work for the receiving end of that transaction. My employer is a financial institution. The providers of all of our business-critical software packages effectively sell full stacks. You want the product? You have to have the correct OS, database, workflow software, and where appropriate run it on the correct webserver package. Missing any of those pieces? They'll be happy to sell you the licenses where appropriate. In some cases you have to have the proper hardware too.

    It's take it or leave it. In some cases you can shoehorn the app into a different stack but typically you null any support contract you may have at that point. Failure to maintain appropriate support for all major packages is not acceptable in any serious financial institution. Hence we maintain both Oracle and MS database installs. Yay.

    Perhaps the financial industry (or my little corner of it) is still living in the 90s. I find it hard to believe that this is the only segment where these practices exist. Healthcare perhaps?



  • @Delve said:

    @bjolling said:

    Situation at my current employer: my current employer sells financial services to their clients. The clients can install an in-house developed package to interface with the back-end. That software requires an existing SQL Server to be installed on premise.

    There is no alternative package: either install the SQL Server, do without the package or switch to another service provider alltogether

    This is more common than some people would like to believe. I work for the receiving end of that transaction. My employer is a financial institution. The providers of all of our business-critical software packages effectively sell full stacks. You want the product? You have to have the correct OS, database, workflow software, and where appropriate run it on the correct webserver package. Missing any of those pieces? They'll be happy to sell you the licenses where appropriate. In some cases you have to have the proper hardware too.

    It's take it or leave it. In some cases you can shoehorn the app into a different stack but typically you null any support contract you may have at that point. Failure to maintain appropriate support for all major packages is not acceptable in any serious financial institution. Hence we maintain both Oracle and MS database installs. Yay.

    Perhaps the financial industry (or my little corner of it) is still living in the 90s. I find it hard to believe that this is the only segment where these practices exist. Healthcare perhaps?

    Yeah, there's a lot of that in healthcare. "You've gotta buy this software product... it will revolutionize the way you do surgery. Just make sure you've got SQL Server 2008 installed, with exactly these service packs... oh, and you're gonna need 8 VPNs, since our testicles are too small to ever trust anything else."



    I personally experience a sense of cognitive dissonance when confronted with such pitches. But what do I know? I didn't study "healthcare information management" in college, so I can never quite achieve the tankful-of-nitrous intelligence levels that are de rigeur at the top levels of the field.



  • If you need it, then nothing else touches multi-node Real Application Clusters (RAC) for distributed, fault-tolerant, load-balanced database (for the price).

    I say "for the price" cos there are (believe it or not) even more expensive options than Oracle RAC but I don't think they're for the likes of us.

    But, if you don't need RAC, then almost *anything* is better than Oracle and their let's-keep-it-at-1970s-computer-scientist-level-of-complexity approach to install, config and maintenance.



  • @skotl said:

    If you need it, then nothing else touches multi-node Real Application Clusters (RAC) for distributed, fault-tolerant, load-balanced database (for the price).

    I say "for the price" cos there are (believe it or not) even more expensive options than Oracle RAC but I don't think they're for the likes of us.

    But, if you don't need RAC, then almost *anything* is better than Oracle and their let's-keep-it-at-1970s-computer-scientist-level-of-complexity approach to install, config and maintenance.

    How about $0?



  • @Ben L. said:

    @skotl said:

    If you need it, then nothing else touches multi-node Real Application Clusters (RAC) for distributed, fault-tolerant, load-balanced database (for the price).

    I say "for the price" cos there are (believe it or not) even more expensive options than Oracle RAC but I don't think they're for the likes of us.

    But, if you don't need RAC, then almost *anything* is better than Oracle and their let's-keep-it-at-1970s-computer-scientist-level-of-complexity approach to install, config and maintenance.

    How about $0?

    Well, OK, if your project / product can support a noSql technology. As everyone else had been talking about SQL Server, Oracle, mySql, Progress, etc., I assumed we were talking RDBMS.

    And, much as I hate Oracle (the company and the products), I still maintain that if you want a multi-active-node, HA, load-balanced, sure-you-can-have-a-lazy-write-instance-for-reporting RDBMS solution, then Oracle RAC is it. However, if you don't need all that then sure as hell don't buy Oracle



  • @skotl said:

    And, much as I hate Oracle (the company and the products), I still maintain that if you want a multi-active-node, HA, load-balanced, sure-you-can-have-a-lazy-write-instance-for-reporting RDBMS solution, then Oracle RAC is it.
     

    Funny thing that the one time when I was at a place that was looking into that kind of thing, when we showed our requisites to a vendor the replay was "no, you can't do that with Oracle, in fact you can't do that with any [relational] database". That, and a following discussion about the meaning of the word "active".

    Later that same day I tryed researching it, and yep, Postgres could do all that. But that was by 2007, maybe Oracle did improve by now.



  • @Mcoder said:

    @skotl said:

    And, much as I hate Oracle (the company and the products), I still maintain that if you want a multi-active-node, HA, load-balanced, sure-you-can-have-a-lazy-write-instance-for-reporting RDBMS solution, then Oracle RAC is it.
     

    Funny thing that the one time when I was at a place that was looking into that kind of thing, when we showed our requisites to a vendor the replay was "no, you can't do that with Oracle, in fact you can't do that with any [relational] database". That, and a following discussion about the meaning of the word "active".

    Later that same day I tryed researching it, and yep, Postgres could do all that. But that was by 2007, maybe Oracle did improve by now.

     

     

    Oracle RAC was introduced with version 9i around 2001. I'm not aware that postgres allows for a "shared everything" cluster architecture. Maybe your requisites required some other features?

    l.

     



  • @Delve said:

    We have a vendor right now that has quietly chosen to use an Access database (which is effectively free in an institutional context that relies on MS Office). I love that vendor. I have a picture of their staff on the wall. Complete with dart holes.

    NCR provides a query tool called Teradata SQL Assistant as part of their Teradata database software. It's a pretty useful little program; one of its features is that it keeps a history of every query you've ever run--the date and time, the datasource, rows returned, processing time, and the SQL that you sent.

    The tool only shows the most recent 200 queries. I went looking for where the data was stored to see if I could find an older query than that. Turns out they keep it in an Access database.

    I'm not sure why this amuses me so much, but it does.


  • Discourse touched me in a no-no place

    @SCSimmons said:

    Turns out they keep [previous Terradata database queries] in an Access database.



    I'm not sure why this amuses me so much, but it does.
    They clearly haven't heard of dogfooding...



  • You can write PostgreSQL stored procs in a lot of languages.

    • PL/pgSQL (compatible with PL/SQL)
    • PL/Tcl
    • PL/Perl
    • PL/Python
    are supported out of the box. You can install
    • PL/Java
    • plPHP
    • pl/R
    • PL/Ruby
    • PL/scheme

    Checkmate?



  • @Ben L. said:

    @skotl said:

    If you need it, then nothing else touches multi-node Real Application Clusters (RAC) for distributed, fault-tolerant, load-balanced database (for the price).

    I say "for the price" cos there are (believe it or not) even more expensive options than Oracle RAC but I don't think they're for the likes of us.

    But, if you don't need RAC, then almost *anything* is better than Oracle and their let's-keep-it-at-1970s-computer-scientist-level-of-complexity approach to install, config and maintenance.

    How about $0?

    That looks truly awful.


Log in to reply