Why the I-Hate-Oracle Club?



  • Why? Because I hate Oracle. I hate how it works. I hate its name. I hate the logo. I hate Larry Ellison. I even hate The Oracle from The Matrix.

    Good to get that out of the way. But I figure, with all of the people out there touched by Oracle, there's gotta be a whole lot who hate it as much as I do. Or, a the very least, have an utter discontent for it. So that's what this is all about: sharing your ramblings about the product/company or, if you're brave, sticking up for the absurdity that has become Oracle. If you want to become an official member, simply reply here.

    And believe it or not, I actually have some rational reasons to hate Oracle. So, let me start out by sharing just a few of them them

    It’s from the world of UNIX and makes sure you know it
    UNIX isn’t just another platform, it’s a whole set of cultural values. Although I respect the other side, I just prefer move, copy, and delete instead of mv, cp, and rm. But not Oracle, goodness no; it came from UNIX, and by golly, it’ll act like it. It insists on a root directory “C:\Oracle” instead of recognizing the decade-old “Program Files.” Its screens don’t look like normal windows. It even refuses to put itself in just as old “Add/Remove Programs” list. And the list goes on. Just to contrast, look at Microsoft’s Office:mac; even the website doesn’t look like Microsoft. Now that’s respect for another culture.

    Just use the command prompt, sissy
    Oracle is in their tenth revision. Why do they refuse to ship a tool other than a SQL command-prompt? Because real developers don’t need no stinkin’ tool. Unless you’re a “real” developer, you’re forced to use a third party tool. And just take a quick look at the number one tool. Seriously. Don’t let the “I let my kid design my brand” look fool you, it’s like $1,500 or so. The site doesn’t list prices, so I think we know what that means.

    I can’t figure the damn thing out
    Oracle was kind enough to send a personal edition of their product for me to try out. I installed the whole 2GB bloatware package, guessing on most of the configuration options which provided no defaults. It had a handful of programs it installed, but knowing none actually do anything database-wise, I went directly into the SQL*Plus command prompt. After an hour of figuring out how to connect to myself, I still couldn’t figure out how to get the thing to connect as a SYSADMIN to so I could run some DDL SQL scripts. I don’t think it’s even necessary for me to mention I learned all I need to know about being a DBA (from creating maintenance plans to replication) by just clicking around in Enterprise Manager and reading context-sensitive help.

    Optimize it yourself, idiot
    I’m going to write a whole separate post going into more detail than this. But, it would seem that real developers don’t need no stinkin’ query optimizer guessing which indexes to use where. I can’t tell you how many times I’ve had to terminate TOAD or SQL*Plus because I accidentally had a non-indexed column in the SELECT list, causing a FULL TABLE scan. Apparently, it’s not up to the database to use an index to filter by row, then select columns from the filtered rows.

    The VARCHAR2 Type
    Seriously. Thank goodness they don’t have power to name types outside of their database. I could just picture it, a String6 is just like a String4, but concatenates differently (like the now-obsolete String2 did).

    The regular “Health Check-Ups” best-practice
    I’m going on the word of a few Oracle DBA here, but they claim that it’s a best-practice to have a high faulting consultant (an Oracle Oracle if you will), come in semi-annually and check the health of your database. I’m all about going to the auto mechanic regularly and having the HVAC guy come over once in a while. But that’s because those cars and heaters cannot possibly maintain themselves. Shouldn’t advanced software be able to perform self-maintenance?

    It’s an insult to Computer Science and the Relational Model
    As our favorite Oracle guru puts it, “One of the remarkable extensions of the Oracle database is the ability to reference Oracle objects directly by using pointers as opposed to relational table joins.” I’m sure I’ll write about this more later, but the insults continue with the instance of using row numbers and the abomination of nested tables. Yes, it takes a lot to create something that doesn’t adhere to First Normal Form. No wonder Mr. Burleson needs consultants like himself to come in later and fix the mess he made.

    UPDATE:
     T-Shirt + Mug avaiable at http://www.cafepress.com/oraclehaters
     Fun Logos at http://thedailywtf.com/images/ihoc

     



  • And check out the Toadsoft feature list.

    "Syntax errors in SQL statements are highlighted," they say.  Then, four lines later, they count "Syntax errors in SQL statements are identified" as a separate feature.  Wow, I'm sure glad they identified the errors before highlighting them, otherwise who knows what could happen.

    But best of all was their pride in "Resizable windows."  Dang, I bet all those other database tool vendors are kicking themselves.



  • Toadsoft works for SQL Server!
    WTF, SQL Server comes with a tool for managing the DB.
    Enterprise manger is not my favorite app. I often say that the reason it is so hard to use, compared to the data tool in VS.Net and Interdev, is because the are competing with Oracle.

    At work, they were seriously looking at buying Visual Studio.Net Enterprise for the whole Java team because Toad was so expensive. I think they settled on just giving it to the DBA.



  • Here is why I hate them:

    Runs on Linux?
    Only supported on one 'flavor' of Linux (Redhat Enterprise) that isn't free.  Isn't this against the Linux credo? 

    Development Tools For Installer?
    Requires the developer tool when installing on Linux (it compiles itself during install).  Microsoft would be burned at the stake for requiring a compiler to install...also it is a security hole, no?  The hipocracy of Oracle?

    Requires Consultant to Install
    Stock Linux installations will not allow Oracle to start.  Becuase I am not a Linux haxx0r, I had to get an Oracle consultant in to get that part to work.  Shouldn't software install without a consultant?

    No Batch ResultSets?
    No batch result sets without REF CURSORs...Give me a break.

    Lousy Tools
    Completely unintuitive toolset.

    Java Stored Procedures?
    Java Stored Procs have to have a wrapper PL/SQL Stored Proc to call them...d'oh!



  • Count me in. 

    I started with an open mind, I honestly did.

    I sooo wanted to like Oracle.   Although I have a Microsoft/SQL Server background, I'm a big fan of open source and the various UN*Xes.

    Everyone seemed to have Oracle on their resume.  The whole industry seemed to love it.  Lots of articles in CIO-friendly magazines like "InfoWeek" mentioned "exciting" buzzwords like "ROI", "scalability", "extensibility", "leveragability", "ittybittyability" (OK, the last one's a joke.)

    Then I started on my first huge Oracle project, and ended up posting this about a month ago:
    http://www.gotdotnet.com/Community/MessageBoard/Thread.aspx?id=274262

    To the comments in that posting and what other people have said, I'd like to add:

    1. Yes, the Java-infested installer is horrible.  Small consolation that it probably looks consistently horrible on all platforms.
    2. The admin "tools" (isn't a tool something that's supposed to make your life easier?) refuse to run as a non-privileged user, and don't install by default under "Program Files", as someone else mentioned, in flagrant violation of all standards.
    3. PL/SQL is based on Ada, which was probably a good idea back when people thought pet rocks were cool too.
    4. The whole thing seems like 'Consultingware' (see 'Joel on Software').  How often does a company have to call in an army of high-paid consultants (must...avoid...linkinking...to...redneck guy...) to fix their SQL Server installation?
    5. The data type issues have already been mentioned, and the wonderful mandatory 'REF' cursors.
    6. I hate the ongoing FUD campaign (yes, beating Microsoft at their own game...) which vaguely implies that Oracle is wonderful and scalable, whereas SQL Server is little more than a desktop database; this is, of course, gobbled up by technologically clueless decision-makers.
    7. The client-side footprint is ridiculous.  If you install the Oracle CDs, you're in for about 700MB; even if you avoid this deal-with-the-devil and sneakily install ODP.NET just to get the client-access libraries, you're still giving up a couple hundred MB of disk space.
    8. SQL+ would be hilarious if I didn't have to use it.  What's up with the line editing commands?  Does it think it's still running on a dumb terminal, like an emulated arcade game running under MAME?!  I had a friend at college who masochistically wrote his entire final-year programming project using 'sed', the UNIX line-editor.  I feel a bit like him when using SQL+.
    9. Lack of a built-in, returnable 'boolean' type.
    10. The naming of everything with underscores -- my_value rather than MyValue.  I know this is personal preference but it still irks me.
    11. Declaring package headers and implementation separately -- didn't we decide, post-C++, that that's not a good way of doing things.
    Does anyone else find the phrase "emperor's new clothes" springs to mind?



  • Darn, this should have been in the 'membership' thread.  Alex, could you move it please?



  • I can't quite agree with you that Orrible comes from the Unix world.  Those of us who have lived there for a while curse it's origins in the Mainframe world.  Especially those of us who used Informix and have seen how well a database can be made to work in it's native environment.

    One of my favourites is the SqlMinus buffer editor.  Pop it open and you are in $EDITOR, save it and run it.  Alas, it doesn't use a temporary file handle, the file name it saves the sql buffer to is afiedit.buf...  In the local directory.  Oh, you don't have permission to write there?  Ooops.  Oh, someone else already had one there?  Double oops.

    I could go on for a very long time.  Maybe I will someday. [H]



  • I can't join the I-hate-Oracle club as I've never managed to install the Developer Edition on a machine powerful enough that it runs. The last time, we installed on a 192MB RAM 600MHz box, that we often use for test runs with SQL Server 2000 (for small to medium scale systems). On this system, SQL Server 2000 takes 4 seconds to create a database (SQL Server creates a new database by making a copy of model). By contrast Oracle took all night (by which I mean 6+ hours) and still failed when the machine's DHCP lease ran out (the crappy Java client tool connected to the server on the same machine using TCP/IP).

    So, I don't hate Oracle - but I'm not exactly motivated to find out.

    Incidentally SQL Server 2005 runs quite happily in a 192MB Windows Server 2003 virtual machine on this 850MHz AMD Duron box (which has quite a lag on this editor!) I get the feeling SQL Server 2005 is going to blow Oracle out of the water.



  • Here are some of my favorites;

    1. Sequences
    2. Cursors
    3. PL/SQL
    4. SQL+
    5. Online documentation that refers to specific document numbers that do not exist.
    6. Arrogance without end
    7. =,=
    8. tnsnames

    Ack, it's like they wrote the book on how to be counter-productive.



  • I actually like sequences, much more than identity in Sql Server. Cursors suck, agree. PL/SQL sucks, but TSQL sucks more. SQL+ also sucks. Metalink docs are useful, only because Oracle is so hard to use. Arrogance... amen to that. Haven't really noticed #7 on your list. Haven't messed a lot with TNSNames yet.



  • @Darren said:


    call in an army of high-paid consultants (must...avoid...linkinking...to...redneck guy...) to fix their SQL Server installation?


    I HAVE TO!!

    http://www.dba-oracle.com/redneck.htm



  • @Goff said:

    1. Sequences

    While the IDENTITY column implementation is cleaner, sequences are more powerful and more flexible.
    @Goff said:
    2. Cursors

    They suck in SQLServer as well
    @Goff said:
    3. PL/SQL

    Sorry - PL/SQL is tons better than T-SQL
    @Goff said:
    4. SQL+

    Absolutely! Positively! There is no possible excuse for that abomination.
    @Goff said:
    5. Online documentation that refers to specific document numbers that do not exist.

    They are anti-anything MS, and so have embraced HTML as their 'open standard' for documenation. The problem is that they have so damn much of it that they are constantly breaking their links, etc.
    @Goff said:
    6. Arrogance without end

    Similar things can be said about Mein fuhrer Gates, but I definitely agree
    @Goff said:
    7. =,=

    Uh, those are SQLServer's constructs. in pre-ANSI*92 syntax, Oracle uses a (+) after the table name for outer-joins - no more intuitive than =. = in that respect.
    @Goff said:
    8. tnsnames

    Agreed - so don't use it.

    Again - just trying to keep the arguments honest,

    - Chris



  • @ChrisRLong said:

    just trying to keep the arguments honest


    But this forum isn't supposed to be about honest debate [;)]. MS-Haters have Slashdot. Oracle-Haters are at least a bit more honest sounding with "I Hate Oracle Club."

    Speaking of slashdot MS-Haterz ... here's a fun +4, Insightful. So, , "-1, Troll" for your rational not anti-Oracle enough arguments [:P].



  • Ah.

    My most humble apologies.

    "Bloody Oracle SUX!!!"

    Better? ;D

    - Chris



  • @ChrisRLong said:

    "Bloody Oracle SUX!!!"


    +5 Insightful!!!! [;)]

    Now you're in the spirit! [:D]



  • I just remembered another thing that pisses me off: the stupid format of the tnsnames.ora file (not to mention the filename - what kind of file extension is ".ora" ?!  ["It's tnsnames.ora's file extension, sir." </Catch 22> ] )

    I know XML was only released a few weeks ago, and it's new-fangled and all, but you'd have thought they might have at least considered it for tnsnames.ora by now.



  • <font color="#0000ff"> I
    know XML was only released a few weeks ago, and it's new-fangled and
    all, but you'd have thought they might have at least considered it for
    tnsnames.ora by now.</font>




    Hey, got another idea, how about we give it a kind of goofy LISP-like
    format? Miss a paren? Guess what ain't going to work for you?!



    Hey another good one- easy way to sell those Oracle Professional
    Services guys- let's make it easy to install the client to a different
    location on accident and let's make it so that you have to guess which
    TNSNAMES.ora is actually being used at the moment!



    And then, just to piss people off, let's change core filenames a lot.
    You're all familiar with TNSPing.exe? Great! Let's make it
    TNSPing80.exe! Now we're talking. THEN- just to make it easy for the
    people selling software that's expected to be generically used with no
    particular version of Oracle, let's change all the client access DLL's
    with each version! Orcl can bankrupt the ISV's that use their data
    access lib's through their helpdesks!



  • @Alex said:

    It insists on a root directory “C:\Oracle” instead of recognizing the decade-old “Program Files.”




    Please tell me you're joking.  This is a Windows cultural
    VALUE?  Most Windows people hate this damn thing because the space
    screws everything up.



    You can also configure the Oracle base directory when installing your
    software.  Though, like most software, it probably wouldn't like a
    path with a space in it.



    @Alex said:
    Oracle is in their tenth revision. Why do they refuse to ship a tool other than a SQL command-prompt?




      OEM ?  SQLPlus Worksheet?  ISQLPlus?



    @Alex said:
    and just take a quick look at the number one tool.
    Seriously. Don’t let the “I let my kid design my brand” look fool you,
    it’s like $1,500 or so. The site doesn’t list prices, so I think we
    know what that means.




    TOAD is free for the base version, which is why it's so popular.



    @Alex said:
    I can’t figure the damn thing out




    That would be your problem, not Oracle's. Plenty have figured it out,
    it's also the most documented and written about database in the world.



    @Alex said:
    After
    an hour of figuring out how to connect to myself, I still couldn’t
    figure out how to get the thing to connect as a SYSADMIN to so I could
    run some DDL SQL scripts. I don’t think it’s even necessary for me to
    mention I learned all I need to know about being a DBA (from creating
    maintenance plans to replication) by just clicking around in Enterprise
    Manager and reading context-sensitive help.




    Right, because it's so much fucking work to read a goddamn QUICK START
    guide or CONCEPTS manual that explains excatly how Oracle works, inside
    and out, in plain english.   Your heart bleeds for me, really.



    @Alex said:
    I
    can’t tell you how many times I’ve had to terminate TOAD or SQL*Plus
    because I accidentally had a non-indexed column in the SELECT list,
    causing a FULL TABLE scan. Apparently, it’s not up to the database to
    use an index to filter by row, then select columns from the filtered
    rows.




    Actually, it is up to the database.   But you would need to
    gather statistics on the tables (which you need to do in SQL Server
    too).  in 10g this is automatic, but in 9i it's a simple PL/SQL
    call or OEM click.



    And full table scans aren't necessarily bad, they're appropriate in some circumstances.



    @Alex said:
    But
    that’s because those cars and heaters cannot possibly maintain
    themselves. Shouldn’t advanced software be able to perform
    self-maintenance?




    Right.   Do you know how adorable you're being right now ? 
    Please point me in the direction of software that does this.



    And I have no idea where you came up with the "bring in a health-check
    consultant" line.  Learn the f'ing database, all the documentation
    is FREE, the database download is FREE, and there are hundreds of books
    on the topic, and decades of usenet posts, and dozens of
    websites.   Get off your ass and learn the thing, make some
    money, and stop whinging.



    @Alex said:
    I’m
    sure I’ll write about this more later, but the insults continue with
    the instance of using row numbers and the abomination of nested tables.
    Yes, it takes a lot to create something that doesn’t adhere to First
    Normal Form. No wonder Mr. Burleson needs consultants like himself to
    come in later and fix the mess he made.




    Nested tables are an area of active research by database theorists and
    have been argued to be "OK" by many theorists.  Pointers (REFs)
    OTOH aren't, they're a hack, use them at your own peril.



    Burleson is stopped understanding Oracle 8 years ago.  I'd ignore him.



    In summary, I think if you spent more time learning and less time
    whining, you'd be much happier in your job, make more money, and may
    actually get productive, as opposed to the sorry state you seem to be
    in at the moment.




  • @Darren said:

    Yes, the Java-infested installer is
    horrible.  Small consolation that it probably looks consistently
    horrible on all platforms.




    Whatever.  It does the job.   Live with it.



    @Darren said:
    The admin "tools" (isn't a tool something that's
    supposed to make your life easier?) refuse to run as a non-privileged
    user, and don't install by default under "Program Files", as someone
    else mentioned, in flagrant violation of all standards.




    ALL STANDARDS?  WHAT FUCKING CRACK ARE YOU ON and can I have some?  "Program Files" is a silly abomination!



    And you can configure where Oracle is installed.



    @Darren said:
    PL/SQL is based on Ada, which was probably a good
    idea back when people thought pet rocks were cool too.




    Right, only all of the world's military systems are written in Ada.   Go back to VB, bubba.



    @Darren said:
    How often does a company have to call in an army
    of high-paid consultants (must...avoid...linkinking...to...redneck
    guy...) to fix their SQL Server installation?




    About as often as Oracle, actually, if you have a serious
    database.    And more if you have a very serious
    database.   Ask Verizon how much money they sink into their
    SQL-Server based billing system, which was chosen for non-technical
    reasons?



    @Darren said:
    The data type issues have already been mentioned, and the wonderful mandatory REF cursors.




    Holy crap, this is stupid.   Let me spell it out for
    you:  a REF is a pointer stored in the database.   It
    violates the relational model, it's evil, etc.   a REF CURSOR
    is just a technique to return a cursor to a client in
    PL/SQL.   THEY ARE NOT RELATED.



    @Darren said:
    The client-side footprint is ridiculous.  If
    you install the Oracle CDs, you're in for about 700MB




    Finally, a valid criticism!  Yes the client install is
    big.   10g has fixed this with a small footprint install ,
    optional.



    @Darren said:
    SQL+ would be hilarious if I didn't have to use it.  What's up with the line editing commands




    "What's up with programming languages that are textual, can't we just program with bubbles & lines???"



    @Darren said:
    The naming of everything with underscores --
    my_value rather than MyValue.  I know this is personal preference
    but it still irks me.




    You irk me.  Life sucks, get a helmet.



    @Darren said:
    Declaring package headers and implementation
    separately -- didn't we decide, post-C++, that that's not a good way of
    doing things.






    What bizarro world do you live in?   Separation of interface
    and implementation is the core concept of modular programming AND
    object oriented programming.   C++ HEADERS have nothing to do
    with INTERFACES, dumbass.




  • @Mike Dimmick said:

    On this system, SQL Server 2000 takes 4 seconds to create a database (SQL Server creates a new database by making a copy of model).
    By contrast Oracle took all night (by which I mean 6+ hours) and still
    failed when the machine's DHCP lease ran out (the crappy Java client
    tool connected to the server on the same machine using TCP/IP).




    A "database" in SQL Server terminology is just a logical grouping of
    database objects, users, and data files.  Closest thing Oracle has
    to this is the "schema" , which is private to a user.   It's
    a different thing that an Oracle database instance, which is the
    equivalent to creating a new master SQLServer database.



    Creating a new Oracle DB shouldn't take 6 hours, though.  
    Something failed along the way, might be a network thing , etc. 
    There are logs that you can read to find out.



    Cheers.




  • @swami said:



    Please tell me you're joking.  This is a Windows cultural VALUE?  Most Windows people hate this damn thing because the space screws everything up.
    It's a standard, even.  And most Windows users don't care about the space in the name.

    You know, GUIs and all that.  Kind of a wonderful invention, you know.

    You can also configure the Oracle base directory when installing your software.  Though, like most software, it probably wouldn't like a path with a space in it.
    Windows software that can't tolerate spaces in filesnames is in the minority these days. 

    That would be your problem, not Oracle's. Plenty have figured it out, it's also the most documented and written about database in the world.
    To me, the fact that so many people have had to write about it tells me it's very difficult to figure out and use.  Oracle is an extremely complex beast, evidenced by the fact DBAs frequently can't do development roles, and developers frequently can't do DBA roles.   Which is just silly when you think about it.  Save for initial setup and maintaince (which really should be automatic) all the DBA should ever have to do is change the backup tapes.

    <FONT size=2>

    Right, because it's so much fucking work to read a goddamn QUICK START guide or CONCEPTS manual that explains excatly how Oracle works, inside and out, in plain english.   Your heart bleeds for me, really.
    Except it doesn't.  It explains the how, not the why.</FONT><FONT size=3>
    </FONT>

    <FONT size=2>

    Actually, it is up to the database.   But you would need to gather statistics on the tables (which you need to do in SQL Server too).
    No, you don't.    You may see less than opitium performance if you don't, but at least the indexes will be use, unlike in Oracle, where apparently they won't.</FONT>

    <FONT size=2>

    Right.   Do you know how adorable you're being right now ?  Please point me in the direction of software that does this.
    PostgreSQL w/ pg_autovaccum seems completely maintaince void, save for the occasional need for index recreation in some corner cases.  They're working to eliminate that too, as I understand it.</FONT>

    <FONT size=2>So it's more than possible.</FONT>



    <FONT size=2>

     Learn the f'ing database, all the documentation is FREE,
    My Free oracle account seems to not be able to access anything.</FONT>

    <FONT size=2>

     the database download is FREE,
    And is severly limited.  It works for development, but that's it.  It may not even work for delpoyment testing due to the connection limitations.</FONT>

    <FONT size=2>

    ALL STANDARDS?  WHAT FUCKING CRACK ARE YOU ON and can I have some?  "Program Files" is a silly abomination!
    It's also MS' standard so I'll have to kindly suggest that you're the one on crack.</FONT>

    <FONT size=2>

    Right, only all of the world's military systems are written in Ada.  
    Very little military stuff is written in Ada, as it turns out.  It never caught on the way the DoD wanted it to for a variety of reasons.  When it was first introduced, it frequently didn't perform or didn't run on lots of H/W targets, by the time that was solved, it got displaced by other solutions.  That's not to say it isn't used, but it's not even all that common in the US DoD.  I know maybe two or three people  total who've worked defense their whole lives and know ADA.</FONT>

    <FONT size=2>

    A "database" in SQL Server terminology is just a logical grouping of database objects, users, and data files. 
    It's more than just a logical grouping.</FONT>

    <FONT size=2>

    Closest thing Oracle has to this is the "schema" , which is private to a user.
    I'm no Oracle expert, but I believe a tablespace is much closer.</FONT>

    <FONT size=2>

    It's a different thing that an Oracle database instance, which is the equivalent to creating a new master SQLServer database.
    Commonly called a database catalog or cluster.</FONT>



  • Actually, I stand corrected.  Oracle has no real equivalent to SQL Server (or PostgreSQL or MySQL) database entities.



  • @LordHunter317 said:



    Windows software that can't tolerate spaces in filesnames is in the minority these days.


    If you insist.



    @LordHunter317 said:


    .To me, the fact that so many people have had to write about it tells
    me it's very difficult to figure out and use.  Oracle is an
    extremely complex beast, evidenced by the fact DBAs frequently can't do
    development roles, and developers frequently can't do DBA
    roles.   Which is just silly when you think about it.




    It is silly, but it's a cultural thing that occurs across databases,
    not just Oracle.    Goes the same for DB2, Sybase, or
    SQL Server.    It's about specializing competence and
    interest.   It sucks because of the barriers to communication
    that are erected between camps.  But it's hard to specialize in multiple areas (though some people do it successfully)



    @LordHunter317 said:


     Save for initial setup and maintaince (which really should be
    automatic) all the DBA should ever have to do is change the backup
    tapes.




    Oh.  My.  God. Do you have any idea how much work goes into
    designing and maintaining a large scale database with hundreds to
    thousands TPS and hundreds of gigs to terabytes of data ?



    System admins & DBA's need to think about:



    I/O Design and Layout
    - how many disks are needed, what kind of
    communications infrastructure (Fibre Channel, SCSI, NAS, etc.) , 
    how should the datafiles be spread (RAID 5, 1+0, or extent-based? 
    Or are you using EMC?), etc



    Physical schema design
      - Should this be a heap or index-organized
    table (similar to SQL server's clustered index vs. heap
    table)?   Should I partition the table?  Put it in a
    cluster?   A hash cluster?   What indexes should I
    use (b-tree, reverse, function, bitmap, domain specific, full
    text)?   Should I use materialized views to speed up some
    reporting queries?  What refresh policy should they have?  Do
    I need external tables, or just use SQL*Loader for flat file
    loads?  etc.



    Capacity planning
    - how to build up resources over time, anticipating
    breaking points, noting bottlenecks, etc.   You can't just
    "throw hardware" at a problem without understanding it, for example,
    adding CPU's can make a system SLOWER if you're not careful.



    Performance tuning & SQL tuning
    -  Should the server be a
    shared-threading model or dedicated server model?  Should parallel
    processing be used for some tables?  There's also compensating for
    poorly written PL/SQL or SQL code (possible in any language,
    really).  What kind of locking / isolation mode should be used for
    which transactions?  Will I need user-level locks at any point?



    Backup and recovery design and maintenance
    -- what's the mean time to
    recover for a) component failure, b) media failure, c) backup media
    failure, d) catastrophic failure, e) user error, f) block
    corruption,  etc.  How much impact do the hot backups have on
    performance & how should they be spread out to
    compensate?    Develop recovery test scenarios, practise
    them, come up with new ways your DB can fail and ensure you're ready



    Security integration
    - Do we use internal roles & users or external
    (LDAP)?  How do they map?  What about data-level
    security?  Do we use views?  fine grained access
    control?  Do we require certificate-baesd authentication
    (x509)?  TLS for the database connection?  Will I need to set
    up synonyms to link schemas?  etc



    Monitoring and troubleshooting
    - Are there pending two-phase commit
    transactions?  Any resources being locked excessively?  What
    are my hot SQL's, what wait events are causing the most
    bottlenecks?  Any new patterns in load or data volume  that
    may impact my capacity or backup & recovery plans?



    Patch and feature management -- testing new security patches and
    major service packs for weird problems with your application, bringing
    new features to developer's attention, etc.


    A lot of this is true for Windows and *NIX system administration in
    general.  You seriously think all of this can be
    automated?   Some can
    be assisted by automotons, but it still needs human judgement.



    @LordHunter317 said:


    PostgreSQL w/ pg_autovaccum seems completely maintaince void, save for
    the occasional need for index recreation in some corner cases. 
    They're working to eliminate that too, as I understand it.



    So it's more than possible.




    I'm not sure your point here.  Oracle's equivalent locking model
    to PostgreSQL (superior, IMHO, because of flashback queries), has never
    required vacuuming, the rollback segments are a circle.  And it's
    gotten easier to design these, with undo tablespaces in 9i, allowing
    time-oriented retention policies for older versions.



    Could software get more automatic for mundane stuff, or
    hard-to-troubleshoot stuff?  Absolutely!  10g has a lot of
    automatic maintenance stuff for SQL tuning, parameter tuning, and stats
    collection.   The new web-based OEM has a relatively usable
    interface to setup RMAN scheduled backups without resorting to the
    command line RMAN.





    @LordHunter317 said:


    My Free oracle account seems to not be able to access anything.




    otn.oracle.com , click documentation or downloads.   I have no special privileges.



    @LordHunter317 said:


    the database download is FREE,



    And is severly limited.  It works for development, but that's
    it.  It may not even work for delpoyment testing due to the
    connection limitations.




    Absolutely NOT.    The downloads are for the FULL,
    UNRESTRICTED enterprise edition of Oracle's products.  You're
    expected to purchase a license to deploy it legally.  But there is
    no technical limitation whatsoever.



    @LordHunter317 said:


    It's also MS' standard so I'll have to kindly suggest that you're the one on crack..




    Fair enough, it's a taste and historical frustration thing, I suppose.



    @LordHunter317 said:


    Very little military stuff is written in Ada, as it turns out.




    No idea, I'll take your word for it.



    @LordHunter317 said:


    I'm no Oracle expert, but I believe a tablespace is much closer (to a SQL server database).


    Fair enough.




  • Lots of fault-tolerant software is written in ADA (ADA was developed for the US military), in particular software for trains. Its also used in missile guidance systems, I have a friend who uses it for this.

     
    That doesn't mean it's suitable as a database language, as a language for a database should be forgiving of errors, in my view.
     
    In a previous company we paid around $2k for one day of an Oracle consultant's time, to install Oracle on solaris. Now compare this to mySQL, postgres, db2, where an experienced shell user can install it with very little problems. And of course SQL Server could be installed by my gran, and easily configured too. Because it's easy to configure doesn't mean it's not powerful, it's just been well designed and thought about, not slowly added to.
     
    The standard bundled tools for it are horrendous, there is very little argument against this statement, as far as I can see. Ditch Java, rewrite them in c++ and you may be getting somewhere. Or maybe my experience with the gui is a complaint about the direness of java as a language for writing GUIs.
     
    It doesn't self optimise well, unlike SQL Server, and again returns to the consultant point, a kind of closed circle of 'free masons' who are the only able ones to do this. The database should be the one optimising, its the one that knows about itself better than any dba. 
     
    Admittedly TSQL is poorer than PL/SQL in terms of power, although this year's Whidbey release and SQL Server 2005 will address this.
     
    The minimum specs for a windows install for 9i, iirc was 512mb ram. Compare this to MSDE, mySQL, Postgres. Even SQL Server standard edition. I'd love to see a reasoned argument in favour of Oracle, explaining why so much shit is bundled with it, and why it requires 2gb of space. Surely the obvious answer is, the majority of it is bloatware, used by extreme-case users such as Walmart.
     
    Incidently, most of SQL Server is Sybase code (large chunks rewritten for NT), which may account for it being a superior product [:P].
     
    In terms of doing the basic task of storing and retrieving data Oracle is slow cludgey bloatware. It may have better features for huge databases such as clusturing (although I've seen this argued in favour of SQL Server, which optimises itself for clustering itself), but the days of enormous (single machine) mainframes are gone, I'd make the broad sweeping statement that the majority of people out there want something that is intuitive and fast to develop with, so they can actually get ROI, and not spend it all on a consultant, installing the damn thing!


  • @smallguy78 said:

    Because
    it's easy to configure doesn't mean it's not powerful, it's just been
    well designed and thought about, not slowly added to.




    True.  I never would claim SQL Server is a "bad" product, it's a
    very good product (and 2005 will be even better).   However I
    haven't experienced anywhere near the kinds of problems people talk
    about with Oracle installations and setups.  Oracle has a history
    of being annoying to install, particularly on UNIX, but it hasn't had
    major problems since at least 2001 with 9i, and arguably 1999 with
    8.1.7.



    @smallguy78 said:
    The
    standard bundled tools for it are horrendous, there is very little
    argument against this statement, as far as I can see. Ditch Java,
    rewrite them in c++ and you may be getting somewhere. Or maybe my
    experience with the gui is a complaint about the direness of java as a
    language for writing GUIs.




    Java can be used to write excellent GUI's (look at Eclipse), but Oracle
    wrote their toolkit back in 1997 before SWT and Swing and haven't
    updated it.   So it's rather long in the tooth.  The
    installer and network manager are really all that's left in Java. 
    Enterprise Manager is now a web-based application in 10g.



    @smallguy78 said:
    It
    doesn't self optimise well, unlike SQL Server, and again returns to the
    consultant point, a kind of closed circle of 'free masons' who are the
    only able ones to do this. The database should be the one optimising,
    its the one that knows about itself better than any dba.




    'Free masons' implies that Oracle DBA's are a secret society or
    guild.   Given how much information is out there, that's a
    stretch.   It could be that people aren't investing in
    learning and training.



    But you may say.... SQL server doesn't require training!  
    B.S. -- it does so, when you have a system of a significant size. 
    When you're developing on your own, the experience certainly is more
    "out of the box".  But again, Oracle 10g has come a long way.



    @smallguy78 said:
    The
    minimum specs for a windows install for 9i, iirc was 512mb ram. Compare
    this to MSDE, mySQL, Postgres. Even SQL Server standard edition. I'd
    love to see a reasoned argument in favour of Oracle, explaining why so
    much shit is bundled with it, and why it requires 2gb of space. Surely
    the obvious answer is, the majority of it is bloatware, used by
    extreme-case users such as Walmart.




    Are you telling me you develop on machines with 256mb ram?  
    Oracle can run fine on a machine with 512mb.  Even less.



    Oracle has a lot of shit bundled with it because it does a
    lot.   And those "extreme" cases , as you call them, are the
    core of Oracle's revenue stream.



    @smallguy78 said:
    Incidently,
    most of SQL Server is Sybase code (large chunks rewritten for NT),
    which may account for it being a superior product Stick out tongue.




    Please, do yourself a favour, don't make me puke.  Sybase had
    benefits over Oracle..... in 1992.    Most of SQL server
    is re-written from Sybase as of 2000, and nearly a complete rewrite as
    of 2005 -- which adopted Oracle's locking model !





    @smallguy78 said:
    In
    terms of doing the basic task of storing and retrieving data Oracle is
    slow cludgey bloatware. It may have better features for huge databases
    such as clusturing (although I've seen this argued in favour of SQL
    Server, which optimises itself for clustering itself)
    .




    Right.  Clickety-click, barba trick, it automagically optimizes itself across a cluster.  



    Do yourself a favour and learn what clusters are (Pfister's In Search
    of Clusters, in particular) to find out how silly your statement
    is.    SQL Server's clustering works for certain cases
    of large-query decision support or highly data-set-specific
    queries.   That's the problem with 'shared nothing'
    approaches (and even still, DB2 would do a better job than SQL Server).



    I'm noticing a trend of constant rationalization and deflecting all self-criticism or introspection here.  



    a) most everyone uses SQL server

    b) a few people use mySQL or Postgres (given the windows bias, I doubt people REALLY have used them)

    c) no one likes or understands the #1 and #2 databases by marketshare, DB2 or Oracle

    d) anything i don't understand is the fault of the product, not my lack of knowledge

    e) anything complex is complex because the product sucks, not because
    it has a different approach or recognizes inherent complexity

    f) if i have to pick up a book, it's too hard

    g) dba's have no real jobs , they're like garbagemen -- change the tapes, that's it

    h) all other operating systems besides windows suck because i learned
    windows first and all that matters is me.  ME ME ME ME ME



    anyway.





  • <FONT size=1>[QUOTE user="swami"] b) a few people use mySQL or Postgres (given the windows bias, I doubt people REALLY have used them)[/QUOTE]</FONT>

    <FONT size=1>I use postgreSQL to run a website. The database behind the website isn't very exciting or big, it just contains all the conetnt, which is maybe 30 pages or so. But I DO use it [:)]</FONT>

    <FONT size=1>I recall getting a free Oracle trial version from somewhere at some point. 4 CDs. Too much. Used them to put glasses and cups on as not to stain the table. IMHO a trial version should be small. Quick to install, quick to get rid of if you do not like it.</FONT>

    <FONT size=1>Drak</FONT>



  • Just a quick comment.  I thought SQL+ was WTF too until I started my new job and was working in Unix through a shell.  SQLPlus isn't really a GUI per se, it's for the commandline.

    It's actually pretty awesome on Unix because you can use it in scripts instead of cranking up a GUI everytime you want to do a query.  We've got lots of canned query scripts that we can use to get info on the current state of our applications.

    I didn't get this when I was a Win only dude because the NT shell is WTF and almost worthless.



  • Some plus
    CREATE OR REPLACE WITH FORCE makes your views anyway. How many times did you get 100 of errors on sql server just because 1 view was compiled before another
    When you rename a view the script is also renamed and not only the view (try that on SQL)

    Some minors
    Users have tables instead of a database has tables
    We have a great database on an island. Their interfaces sucks.
    I use MS DTS to copy data from one oracle database to another.
    No integrated windows logon on *nix
    They don't have AUTONUMBER !!. They use stupid sequencers.

     



  • Huh ever heard of osql ?



  • @Alex Papadimoulis said:

    Why? Because I hate Oracle. I hate how it works. I hate its name. I hate the logo. I hate Larry Ellison. I even hate The Oracle from The Matrix.

    Good to get that out of the way. But I figure, with all of the people out there touched by Oracle, there's gotta be a whole lot who hate it as much as I do. Or, a the very least, have an utter discontent for it. So that's what this is all about: sharing your ramblings about the product/company or, if you're brave, sticking up for the absurdity that has become Oracle. If you want to become an official member, simply reply here.

    And believe it or not, I actually have some rational reasons to hate Oracle. So, let me start out by sharing just a few of them them

    It’s from the world of UNIX and makes sure you know it
    UNIX isn’t just another platform, it’s a whole set of cultural values. Although I respect the other side, I just prefer move, copy, and delete instead of mv, cp, and rm. But not Oracle, goodness no; it came from UNIX, and by golly, it’ll act like it. It insists on a root directory “C:\Oracle” instead of recognizing the decade-old “Program Files.” Its screens don’t look like normal windows. It even refuses to put itself in just as old “Add/Remove Programs” list. And the list goes on. Just to contrast, look at Microsoft’s Office:mac; even the website doesn’t look like Microsoft. Now that’s respect for another culture.

    Just use the command prompt, sissy
    Oracle is in their tenth revision. Why do they refuse to ship a tool other than a SQL command-prompt? Because real developers don’t need no stinkin’ tool. Unless you’re a “real” developer, you’re forced to use a third party tool. And just take a quick look at the number one tool. Seriously. Don’t let the “I let my kid design my brand” look fool you, it’s like $1,500 or so. The site doesn’t list prices, so I think we know what that means.

    I can’t figure the damn thing out
    Oracle was kind enough to send a personal edition of their product for me to try out. I installed the whole 2GB bloatware package, guessing on most of the configuration options which provided no defaults. It had a handful of programs it installed, but knowing none actually do anything database-wise, I went directly into the SQL*Plus command prompt. After an hour of figuring out how to connect to myself, I still couldn’t figure out how to get the thing to connect as a SYSADMIN to so I could run some DDL SQL scripts. I don’t think it’s even necessary for me to mention I learned all I need to know about being a DBA (from creating maintenance plans to replication) by just clicking around in Enterprise Manager and reading context-sensitive help.

    Optimize it yourself, idiot
    I’m going to write a whole separate post going into more detail than this. But, it would seem that real developers don’t need no stinkin’ query optimizer guessing which indexes to use where. I can’t tell you how many times I’ve had to terminate TOAD or SQL*Plus because I accidentally had a non-indexed column in the SELECT list, causing a FULL TABLE scan. Apparently, it’s not up to the database to use an index to filter by row, then select columns from the filtered rows.

    The VARCHAR2 Type
    Seriously. Thank goodness they don’t have power to name types outside of their database. I could just picture it, a String6 is just like a String4, but concatenates differently (like the now-obsolete String2 did).

    The regular “Health Check-Ups” best-practice
    I’m going on the word of a few Oracle DBA here, but they claim that it’s a best-practice to have a high faulting consultant (an Oracle Oracle if you will), come in semi-annually and check the health of your database. I’m all about going to the auto mechanic regularly and having the HVAC guy come over once in a while. But that’s because those cars and heaters cannot possibly maintain themselves. Shouldn’t advanced software be able to perform self-maintenance?

    It’s an insult to Computer Science and the Relational Model
    As our favorite Oracle guru puts it, “One of the remarkable extensions of the Oracle database is the ability to reference Oracle objects directly by using pointers as opposed to relational table joins.” I’m sure I’ll write about this more later, but the insults continue with the instance of using row numbers and the abomination of nested tables. Yes, it takes a lot to create something that doesn’t adhere to First Normal Form. No wonder Mr. Burleson needs consultants like himself to come in later and fix the mess he made.

    God give it a rest already you are all pathetic!!!!!


  • $5 says you work for/with, or are related to someone who works for/with Oracle.




  • @swami said:

    @LordHunter317 said:

    Very little military stuff is written in Ada, as it turns out.


    No idea, I'll take your word for it.

    @LordHunter317 said:

    I'm no Oracle expert, but I believe a tablespace is much closer (to a SQL server database).

    Fair enough.

     

    If you didn't know, why did you put it forward as an arguement? Makes me wonder how much other stuff you pulled out of your a$$ in trying to make your point...



  • @LordHunter317 said:

    @swami said:



    Please tell
    me you're joking.  This is a Windows cultural VALUE?  Most
    Windows people hate this damn thing because the space screws everything
    up.
    It's a standard, even.  And most Windows users don't
    care about the space in the name.

    You know, GUIs and all that.  Kind of a wonderful invention, you know.



    Ugh. My first action on getting a new Windows box is to change HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir to someting sensible, like C:\Apps. The stupid hoops you have to do to handle spaced filenames, all those quotes and stuff.

    I'm with Oracle on that one.



  • I agree with all your points. However, wait until you have to learn Sybase 12.5 or DB2 8.2, then you will have some real fun. [:P]



  • I hate anything that is non-standard.  Oracle follows its own standard to create lockin.  Well they know how to make money, but they don't produce good software for the people. 

    Sequences and Auto-Increment suck..  Never depend on the next value existing.  This is just stupid.  Just use a unique ID and insert it.



  • @res2 said:

    @swami said:

    @LordHunter317 said:

    Very little military stuff is written in Ada, as it turns out.


    No idea, I'll take your word for it.

    @LordHunter317 said:

    I'm no Oracle expert, but I believe a tablespace is much closer (to a SQL server database).

    Fair enough.

     Honestly, neither of them have a single clue of what they're talking about, so I'm gonna say that while they're both pulling it out of their ass, swami's getting a lot more right.

    ADA is still taught to every single programmer in the military, and while it's not used as much as it used to be, there are still a TON of legacy applications in ADA.

    As to SQL Server databases, swami was right about that;  a Schema is closer.  As I understand it, a SQL Server database is a collection of table objects and their related constraints, primary keys, foreign keys, etc.  This is the exact same as an Oracle SCHEMA.  An Oracle TABLESPACE, OTOH, can be a collection of SCHEMA objects.

    If you didn't know, why did you put it forward as an arguement? Makes me wonder how much other stuff you pulled out of your a$$ in trying to make your point...



  • @JThelen said:

    @res2 said:

    @swami said:

    @LordHunter317 said:

    Very little military stuff is written in Ada, as it turns out.


    No idea, I'll take your word for it.

    @LordHunter317 said:

    I'm no Oracle expert, but I believe a tablespace is much closer (to a SQL server database).

    Fair enough.

    If you didn't know, why did you put it forward as an arguement? Makes me wonder how much other stuff you pulled out of your a$$ in trying to make your point...


    Honestly, neither of them have a single clue of what they're talking about, so I'm gonna say that while they're both pulling it out of their ass, swami's getting a lot more right.

    ADA is still taught to every single programmer in the military, and while it's not used as much as it used to be, there are still a TON of legacy applications in ADA.

    As to SQL Server databases, swami was right about that;  a Schema is closer.  As I understand it, a SQL Server database is a collection of table objects and their related constraints, primary keys, foreign keys, etc.  This is the exact same as an Oracle SCHEMA.  An Oracle TABLESPACE, OTOH, can be a collection of SCHEMA objects.


    That's a first.  WTF post generation ate my prior post.  It should have looked more like this.



  • @tberthel said:

    I hate anything that is non-standard. 
    Oracle follows its own standard to create lockin.  Well they know
    how to make money, but they don't produce good software for the
    people. 

    Sequences and Auto-Increment suck..  Never depend on the next value existing.  This is just stupid.  Just use a unique ID and insert it.



    I have absolutely no clue as to what you're talking about.  There are a few things in Oracle that are not to exact SQL standard, but those are additional constructs and you can do anything without them that you could do with them, but using them makes life a little easier.  MINUS and CONNECT BY PRIOR come to mind here.

    As to Sequences and Auto-Increment being horrible, I don't get your arguement there AT ALL.  If I have a value, and I increment it by 1, or 10, or 100, or any other value I decided on, why would the nextval not be there?  Is there some limit in the numbering system that I'm unaware of?  I'm reasonably certain that my math teachers in middle school were quite clear that numbers are infinite.  Also, I have no fucking clue what a unique ID has to do with this.  That has to get generated somewhere, right?  Why would the same rules that apply to a number generated by the database not apply to this random Unique ID of yours?


  • @Cyresse said:

    $5 says you work for/with, or are related to someone who works for/with Oracle.






    So are you saying that because he uses and is comfortable using Oracle
    products his points are invalid?  If so, that's a real nice way to
    restrict anything remotely factual from finding its way into this
    discussion.



  • @JThelen said:

    @Cyresse said:
    $5 says you work for/with, or are related to someone who works for/with Oracle.



    So are you saying that because he uses and is comfortable using Oracle products his points are invalid?  If so, that's a real nice way to restrict anything remotely factual from finding its way into this discussion.

    I was commenting more on the obvious emotional tone of the post being indicative of someone who supports Oracle for personal reasons. I highly enjoy reading the accounts of people who know Oracle and can comment thoroughly on it's weaknesses and strengthes.

    An unsubstantiated opinion that "we are all pathetic" is not something I would consider factual, remotely or otherwise, so I can rest easy, assured that my questioning of an emotional response in support of Oracle has not quashed any form of expression.

     

     



  • Funny, many of your arguments against Oracle are actually plain wrong... but
    since is the "I hate Oracle" thread, I'll not try to correct you, but
    add my own "things I don't like in Oracle" list...



    since '' = NULL, rpad('', 5) = '' and length('') = NULL



    Even after years of PL/SQL programming, this still catches me
    from time to time. The length() thingy is especially prone to infinite
    loops:

    while length(myString)>0 loop
     doSomeThingWithTheFirstCharacter(substr(myString,1,1));
     myString := substr(myString, 2); -- remove first character
    end loop;
    

    Looks innocent, but never finishes.


    accessing Oracle from anything but JDBC



    the "Oracle Client" installation is probably larger than a fully functional Linux distro including PostgreSQL



    having the boolean datatype in PL/SQL, but not in database tables



    so it's 'Y' and 'N' in a char(1) or '0' and '1' in number(1)... there are many possible replacements, choose one



    Oracle installer not working properly



    More than once I experienced an crash when trying to install an Oracle
    product on Windows. No workaround. On Linux, there are funny effects
    with the Java-based installer... like not working on the local X
    server, only from a remote X server or VNC.



    Oracle de-installation not working properly



    If you think installation sucks, try to get rid of it. Hint for Windows users: DELTREE and REGEDIT are the way to go.



    Anything but the database



    Compared to their other tools, like OAS (Oracle Application Server), the Oracle Database is a minor anoyance.



  • Oracle Ranting, Part 2



    Cost-based query optimizer



    in most cases, it works reasonably well, maybe even a bit faster than
    the rule-based optimizer; but if it fails (chooses the wrong access
    strategy) it goes horribly wrong. Full-table scans on several large
    tables etc.



    SQLC preprocessor not working identical on all plattforms



    In 8i, the sql
    c preprocessor would accept certain constructs on Linux but not on Windows.

    BTW, the first lines of my SQL*C programs look like this:


    #ifndef STUPID_PROC
    #include <stdio.h> #include <math.h> #include <stdlib.h> #include <ctype.h> #include <malloc.h> #else extern double rint(double); extern void *calloc(int, int); extern void *stderr; #endif </malloc.h></ctype.h></stdlib.h></math.h></stdio.h>

    because SQL*C does not accept all standard include files from Linux. Of
    course, it has to be called with the define=STUPID_PROC option.



    installation



    Can't repeat that often enough.



    example DBMS paramsIn older versions up to 8i, you had to set
    some performance-relevant parameters in the init.ora file. The sample
    came with 3 different sets of parameters: SMALL, MEDIUM and LARGE
    (corresponding to the ammount of RAM oracle would occupy). But even in
    the LARGE configuration, Oracle would only use 12MB for block buffers,
    so if you had a decent ;-) server with 128MB RAM, Oracle would not make
    much use of it, thus being incredibly slow. Even on our development DB
    server, which is not exactly powerfull but has to host 10 or so
    instances of Oracle, I had to set higher values than the proposed LARGE
    configuration.



    syntax of the INSERT statementWell, this actually applies
    to all SQL databases, not just Oracle... but since they already
    introduced so many proprietary SQL extensions, they could have cared
    for that one too:

    INSERT INTO mytable (c1, c2, c3, ..., c57) VALUES (v1, v2, v3, ..., v57)
    What's

    wrong with it? Try to match the entries in the column list with the
    entries in the value list. Nearly impossible for tables with many
    columns. I would gladly welcome a DBMS which introduces a new
    (UPDATE-like) syntax:

    INSERT INTO mytable SET c1=v1, c2=v2, c3=v3, ..., c57=v57

    If you know such a DBMS, please tell me.



  • ... after reading through all the posts I'm really curious about the
    qualification of some "experts" here who are in desperate need of
    "getting a clue" (or at least read that frikkin' manual and Tom Kytes
    site)



    Yes, Oracle has its irks and flows.

    No, there is no database product on this planet that is error free.

    Yes, SQL-Server may have it's advantages - I quit after 6.5 puked on
    3000 (!) records inserted via ODBC (that's quality for you folks).

    No, Oracle EE is not designed to run on your pocket pc, use Oracle Light for whoever's sake.

    Yes, postgres is a nice database system, but is lacking in some areas (such as writing SP-Code directly in triggers)

    No, Sybase does not possess any significant market share any more, and
    T-SQL is an abomination compared to PL/SQL. Same goes for VB/VBScript.

    Yes, nobody likes Larry Ellison (except Oracle Share Holders), but the
    same goes for William Gates III. and tons of other Forbes 1000 Company
    Owners, CEOs or Leading Managers.

    No, Oracle is not nailed to one flavor of Linux, it can be installed on
    several different distributions starting with RedHat and friends
    (CentOS, Xeos, probably White Box), SuSE (now Novell), even the
    "professional"  version, and even works on  systems powered
    with gentoo (which is not for the faint of heart). Hell, there's even
    an installation guide for FreeBSD.

    Yes, it runs on the Redmond OS (which, by the way, is a weak excuse for an operating system, but that's another story)

    No, neither sqlserver nor any other commercial come close to oracle's
    clustering capabilities beeing summarized in the acronym RAC. Most
    people don't need it, but you'll get it for free in the 10g SE (!)
    anyway.



    But since this is Oracle Hate Club, yes, there are some things, where I have my problem areas with the Big O.



    30 Character Limit

    Don't know who invented this, and it's fine on table/column names. But
    constraints would be a lot more easier to implement if you weren't
    forced to cut their names because of this "invention" (for which I
    don't see any valid technical reason, especially in the 21st century)



    Everything's a hog

    It may be just me, but Oracle's products can be described
    with a lot of attributes, but "lean and mean" is none of them (even
    when it comes to Oracle Light). It's like Oracle assumes that all the
    DB developers out there are kids in a candy store with only one thought
    in their frikkin' mind: Get it all.  No, Mr. Ellison, I don't work
    with "advanced queues" and gazillion other features of this otherwise
    remarkable product. Would it be possible, to spend less denn 1.4 GB for
    a base installation (without a running instance) albeit we're in the
    400GB harddrive for the desktop aera?



    Sequences are nice - but so are id columns

    Why write a trigger (even through a script) for such tasks? Why not
    have the best of both worlds, such as in postgres? Can't be that hard,
    right?



    UPPER CASE is not a life style

    Yes, you can use mixed case for better readability with "", but
    wouldn't it be nice, if the system would just remember those things
    without the help of the developer? I for one, do prefer mixed case,
    especially in reading.



    that's all folks (for now)

    l.



  • ... forgot at least on important thing after reading another Oracle WTF.



    Empty Strings ('') = NULL

    I can't count the number of occassions where this "special feature" in
    Oracle caused me and others to figure out a workaround. Thanks Larry ...



    l.



  • @ammoQ said:



    syntax of the INSERT statementWell, this actually applies
    to all SQL databases, not just Oracle... but since they already
    introduced so many proprietary SQL extensions, they could have cared
    for that one too:

    INSERT INTO mytable (c1, c2, c3, ..., c57) VALUES (v1, v2, v3, ..., v57)
    What's

    wrong with it? Try to match the entries in the column list with the
    entries in the value list. Nearly impossible for tables with many
    columns. I would gladly welcome a DBMS which introduces a new
    (UPDATE-like) syntax:

    INSERT INTO mytable SET c1=v1, c2=v2, c3=v3, ..., c57=v57

    If you know such a DBMS, please tell me.





    MySQL handles that just fine



  • You think just the database is bad?  Try Oracle Forms.  
    OMG that product sucked so bad.  When I got consulting gigs to
    replace Oracle Forms apps I wrote plenty of scripts to convert that
    s*** into Delphi forms, then go back and do the arduous task of
    refactoring the database/class structure, etc.



    I don't even want to go into Oracle CRM or their ERP "solution."  No wonder they are on a company buying spree.



  • Because I have to use MS SQL Server every day, and I hate that.  When I have to use Oracle every second day, I get a pleasant reminder that MS SQL Server isn't that bad after all.



  • My membership

    Why I hate Oracle:

    • DUAL. Who the fuck came up with the idea of a table called DUAL that contains ONE record. Why not call it SINGLE? Or why not support the fact that WHERE clauses might be <i>optional</i>?
    • One engine = one database. On many other databases (Informix and PostgreSQL, to name a few), you can run many independent databases on a single engine. This means you can, for instance, easily clone a database for testing purposes. But we use Oracle. This means that we have to ask the sysadmins to create a new engine every time we need a new database. Even if we intend to almost never use it. And they often refuse, as every engine takes up too much server memory already.
    • The DATE type. Why call a type DATE and include a time? All sensible databases have separate types, like DATE, TIMESTAMP, TIME. Types that do what they say.
    • You cannot declare a parameter or a variable at the beginning of a stored procedure (before the BEGIN part) that has the word "end" in it. At least, not through ODBC -- the driver parses just enough to barf on that.
    And these are just the things that come to mind right now.



  • I've been oracle-free for two years now, so I've forgotten 95% of the headaches.  The best ones I can remember:



    The Java installer.   It  sucked really bad.  First
    off it wouldnt run at all with the standard version 2.37 of Java, you
    had to download an install a 11MB patch to Java first.  Then it
    would run, but all I remember is it asking a lot of unanswerable
    questions, informing me my disk with 23Gb free didnt have enough space,
    as some integer overflowed and it thought I had -1433GB free.



    ---

    After finally getting it installed, it was time to make a test
    database.  You'd think by now you could type "dbnew foo
    /tables=... /fields=....".  Nope. 



     There's a horribly convoluted 57 pages in the manual as to how to
    get a db started, and a lot of handwaving.  Crazy.  
    Particularly annoying was having to  generate all kinds of 
    tables for  Oracle's  internal use.   When you go
    to buy  a jar of  Heinz ketchup, do they  require you
    to  fill out a purchase order for their tomato squisher? 
    When you buy a car, do you have to  go order them some iron ore?



    I kept looking and looking, assuming I was mssing the little blue button labeled "make me a database in 2 seconds".   Just couldnt seem to find it.



     Finally I sat down and wrote some code to do all the necessary
    things  in one fell swoop.   Why wasnt this done on day
    one of version 1.0?     Yes, I know, there are some
    tools that allegedly do this, but they looked far to horrible to ever
    use.



    That was just the tippy-tip-top of the iceberg.  All else has faded from memory.  Whew.



    if we were still in a cold war with the russkies, we should have dropped Oracle on them. 

    Free CD's.  Please use.




  • I love Oracle - most people have no idea whatsoever about it, it keeps me in work. Luverly!

    As they say - If it was easy they'd all do it - no money in that!


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.