Wednesday 28 December 2011

Why Oracle

I was always wondering why people are still behind Oracle. I’ve done a basic analysis and found out some of the following. Hope the below will clarify all your doubts.

Disclaimer and Update: I'm now working on Oracle Platform. So keep that in mind when you read these posts. The topic I posted here is really based on my knowledge. Even I know, there are some advantages for SQL as well. Please rectify me if you find anything wrong which I’ve posted here. I’m happy to remove any point which seems to be incorrect.


Oracle is available on multiple platforms such as Windows, all flavors of Unix from vendors such as IBM, Sun, Digital, HP, Sequent, etc. and VAX-VMS, as well as MVS. The multi-platform nature of Oracle makes it a true enterprise solution. Oracle and Microsoft SQL Server are competitors in the enterprise database market space. Oracle database software is the market leader with a 44.3 percent market share, while Microsoft SQL has an 18.5 percent market share. Oracle is an order of magnitude more flexible and robust that SQL Server. However, market share does not tell the whole story--Microsoft has regularly introduced new features to ensure it remains competitive.

Ø    DBAs can perform typical administrative functions in 41 percent less time when using Oracle Database 11g compared to Microsoft SQL Server 2008.

Ø    Oracle have more sophisticated partitioning including multiple partition types (range, list, hash) and subpartitioning. SQL Server is limited to range partitioning and no subpartitioning

Ø    Oracle Database 11g requires 43 percent fewer steps for the same set of standard RDBMS tasks than Microsoft SQL Server 2008 using Edison’s metric for complexity assessment.

Ø    Oracle Database provides support for developing, storing, and deploying Java applications. Bringing Oracle and Java together in our development environment gives us an exceptionally flexible and robust application development and data-handling infrastructure that fronts an excellent data management system and is easily extended in enterprise resource planning. On top of that, it’s extremely Internet-friendly, an increasingly important consideration. SQL server doesn’t have no Java database engine as in Oracle.

Ø      In SQL Server there is no "dead connection detection". Clients who lose their connection may still hold locks until a DBA is notified to kill their server side processes.

Ø    Benefiting from increased DBA productivity due to lower complexity and higher efficiency cited above, businesses could save up to $33,520.47 per year per DBA by using Oracle Database 11g rather than Microsoft SQL Server 2008.


Why Oracle Wins

Oracle is the first successful commercial RDBMS, they have helped set the standard.

It runs on any OS you can think of, including UNIX, Windows and Mac OSX
You can run it for free. If you consider it’s supported on Linux, then it gets even cheaper. Just find some decent hardware, and you’re good to go.

You can create, populate, query, manage,  backup, & destroy a database all on the command-line. No tools necessary.

Even Oracle support GUI.

You can control it over the web, if that’s your kind of thing.

There’s no shortage of jobs that require Oracle expertise. If you know Oracle, you should be able to find a job. I don’t see this changing anytime soon.

Oracle jobs generally come with a very good salary.
Advantages of Oracle over SQL Server 
In SQL Server, the DBA has no "real" control over sorting and cache memory allocation. The memory allocation is decided only globally in the server properties memory folder, and that applies for ALL memory and not CACHING, SORTING, etc.
No range portioning of large tables and indexes. In Oracle, a large 100 GB table can be seamlessly partitioned at the database level into range partitions. For example, an invoice table can be partitioned into monthly partitions. Such partitioned tables and partitioned indexes give performance and maintenance benefits and are transparent to the application.
There are no function-based indexes in SQL Server.
There is no partitioning in SQL Server.
There are no reverse key indexes in SQL Server.
All pages (blocks) are always 8k and all extents are always 8 pages (64k). This means you have no way to specify larger extents to ensure contiguous space for large objects.
There are no bitmap indexes in SQL Server.
There is no star query optimization in SQL Server.
 PL/SQL is better in error exception handling, and there is no such thing as exceptions in T-SQL (T-SQL uses @@error -- not elegant!).
In SQL Server there is no such thing as SQL*NET aliases/service names! This means applications have to hard code the actual server name into their apps, making it difficult to move databases later to load balance across servers.
No ability to read/write from external files from a stored procedure.
PL/SQL has many DBMS system packages, where T-SQL relies only on a limited number of extended and system stored procedures in the master database.
Stored procedures in SQL Server are not compiled until executed (which means overhead, late binding and finding errors at execution time only!).
We cannot declare public or private synonyms.
No "before" event triggers (only "after" event triggers) and no row triggers (only statement).
There is no such thing as independent sequence objects.
There are no packages; i.e., collections of procedures and functions.


1 comment: