Skip to main content

Why Oracle over Microsoft SQL Server?


Why Oracle over Microsoft SQL Server?

* What are the differences in terminology between MS-SQL and Oracle?  I also understand that SQL Server is far less flexible and robust than Oracle and I hope to know those features that I will not have in SQL Server?

Answer:  Oracle is the world's most popular database primarily because it runs on every platform known, from a mainframe to a Mac.  MS-SQL on the other hand, is a Windows-only offering.  Both SQL Server and Oracle are relational databases, but it is their genealogy that tells about their core differences:
  • SQL Server:  MS-SQL grew-up running tiny, departmental applications on personal computers.  Microsoft is trying to "push up" into the mainstream market, running SQL Server on super-large servers that run Windows.

  • Oracle:  Oracle is a mature database with a decade head-start on MSSQL in terms of specialized features.  While SQL Server has tried to "push up" into the Corporate database market, Oracle has made "simplified" releases of Oracle (i.e. Oracle XE) to "push down" into the realm of departmental computing to complete with MS-SQL.

Why does Oracle have to be so hard?

One of the most common questions asked by a SQL Server DBA is "Why does Oracle have to be so hard?".  Any robust and flexible database must, by definition, be complex, and Oracle is complicated because Oracle allows you to fully control every aspect of RAM and disk storage.  Unlike SQL Server, Oracle allows you to control exactly where rows are placed on the data blocks and control almost every internal machination of the RAM regions. 


The complexity of the database engine also reflects in the salaries for Oracle DBAs vs. SQL Server DBAs.  As of 2011 the average salary for an experienced Oracle DBA was over $100,000 per year, while a SQL Server DBAs earn a fraction of that salary.
Here is a visual of the differences between Oracle and SQL Server:
OracleSQL Server
Flexibility

Oracle is the Swiss Army Knife of relational databases.


SQL Server is lean and easy to use with lots of one-size-fits-all applications.

SQL Server has only a few dozen tuning knobs while Oracle has hundreds of parameters.

This makes SQL Server less robust, but far easier to use.

A comparison of SQL Server and Oracle Terminology

While both Oracle and SQL Server are ANSI compliant databases, they are vendor products and the developers have a vested interest in making their database competitive.  Some of the terminology differences between Oracle and SQL Server include:
  • Logical data storage terminology:  In many RDBMS applications, the Device Media Control Language (DMCL) layer provides the mapping between the physical data files and the logical table/index storage areas.  Oracle, DB2 and other RDBMS products call this logical storage a "tablespace", but SQL Server uses the term "page" and "file group" to refer to a unit of storage.
  • Data Blocks:  Both SQL Server and Oracle map their physical data blocks to the logical storage.  Because Oracle runs on UNIX, block sizes can range from 2K to 32K, while SQL Server, being constrained by Windows, must use 8 K blocksizes (8k "pages").
  • Listener process:  Oracle uses an independent daemon process called a "listener" to manage incoming connects to Oracle.  SQL Server has no listeners.
  • Object-data block mapping:  Both SQL Server and Oracle allow a single data block (page) to contain rows from different tables, for faster I/O.  In Oracle this is implemented via cluster tables. Clustering related rows (e.g. order rows adjacent to item rows) all items for an order can be fetched in a single I/O.
  • Special features:  As noted, both Oracle and SQL Server try to remain ANSI compliant while still making their databases "special".  Hence there are features within Oracle (CTAS, decode) that do not exist in MS-SQL.  There are also significant differences in the SQL dialects.

Comments

Popular posts from this blog

Background Process in ORACLE Database

Background Process in ORACLE Database Database Writer Process (DBWn) Log Writer Process (LGWR) Checkpoint Process (CKPT) System Monitor Process (SMON) Process Monitor Process (PMON) Recoverer Process (RECO) Job Queue Processes Archiver Processes (ARCn) Queue Monitor Processes (QMNn) Database Writer Process (DBWn) The database writer process (DBWn) writes the contents of buffers to datafiles. The DBWn processes are responsible for writing modified (dirty) buffers in the database buffer cache to disk. Although one database writer process (DBW0) is adequate for most systems, you can configure additional processes (DBW1 through DBW9 and DBWa through DBWj) to improve write performance if your system modifies data heavily. These additional DBWn processes are not useful on uniprocessor systems. When a buffer in the database buffer cache is modified, it is marked dirty. A cold buffer is a buffer that has not been recently used according to the least recently used (LRU) algorith...

Using GREP in UNIX

How To Use grep Command In Linux / UNIX by  VIVEK GITE  on  AUGUST 2, 2007  ·  147 COMMENTS H ow do I use grep command in Linux? grep command searches the given file for lines containing a match to the given strings or words. By default, grep prints the matching lines. Use grep to search for lines of text that match one or many regular expressions, and outputs only the matching lines. The name, "grep", derives from the command used to perform a similar operation, using the Unix/Linux text editor ed: g/re/p grep command syntax grep 'word' filename grep 'string1 string2' filename cat otherfile | grep 'something' command | grep 'something' Use grep to search file Search /etc/passwd for boo user: $ grep boo /etc/passwd You can force grep to ignore word case i.e match boo, Boo, BOO and all other combination with -i option: $ grep -i "boo" /etc/passwd Use grep recursively You can search recursively i.e. read all files under each ...

Searching BOOLEAN on the INTERNET

A Primer in Boolean Logic The Internet is a vast computer database. As such, its contents must be searched according to the rules of computer database searching. Much database searching is based on the principles of Boolean logic. Boolean logic refers to the logical relationship among search terms, and is named for the British-born Irish mathematician George Boole. On Internet search engines, the options for constructing logical relationships among search terms often modify the traditional practice of Boolean searching. This will be covered in the section below, Boolean Searching on the Internet. Boolean logic consists of three logical operators: OR AND NOT Each operator can be visually described by using Venn diagrams, as shown below. OR logic college OR university Question: I would like information about college. In this search, we will retrieve records in which AT LEAST ONE of the search terms is present. We are searching on the term...