Friday, March 4, 2011

SQL Server 2000 vs Oracle 9i




Introduction

Often people in newsgroups ask about some comparison of Oracle and Microsoft SQL Server. In this article, I compare SQL Server 2000 with Oracle 9i Database regarding price, performance, platforms supported, SQL dialects and products limits.

Platform comparison

SQL Server 2000 only works on Windows-based platforms, including Windows 9x, Windows NT, Windows 2000 and Windows CE.
In comparison with SQL Server 2000, Oracle 9i Database supports all known platforms, including Windows-based platforms, AIX-Based Systems, Compaq Tru64 UNIX, HP 9000 Series HP-UX, Linux Intel, Sun Solaris and so on.

Hardware requirements

To install SQL Server 2000, you should have the Intel or compatible platforms and the following hardware:

Hardware Requirements
Processor Pentium 166 MHz or higher
Memory 32 MB RAM (minimum for Desktop Engine),
64 MB RAM (minimum for all other editions),
128 MB RAM or more recommended
Hard disk space 270 MB (full installation),
250 MB (typical),
95 MB (minimum),
Desktop Engine: 44 MB
Analysis Services: 50 MB minimum and 130 MB typical
English Query: 80 MB

Oracle 9i supports Intel or compatible platforms, AIX-Based Systems, Compaq Tru64 UNIX, HP 9000 Series HP-UX, Linux Intel, Sun Solaris and so on.

To install Oracle 9i under the Intel or compatible platforms, you should have the following hardware:

Hardware Requirements
Processor Pentium 166 MHz or higher
Memory RAM: 128 MB (256 MB recommended)
Virtual Memory: Initial Size 200 MB, Maximum Size 400 MB
Hard disk space 140 MB on the System Drive
plus 4.5 GB for the Oracle Home Drive (FAT)
or 2.8 GB for the Oracle Home Drive (NTFS)

To install Oracle 9i Database under the UNIX Systems, such as AIX-Based Systems, Compaq Tru64 UNIX, HP 9000 Series HP-UX, and Sun Solaris, you should have the following hardware:

Hardware Requirements
Memory A minimum of 512 MB RAM
Swap Space A minimum of 2 x RAM or 400 MB, whichever is greater
Hard disk space 4.5 GB

Software requirements

SQL Server 2000 comes in six editions: Enterprise, Standard, Personal, Developer, Desktop Engine, and SQL Server CE (a compatible version for Windows CE) and requires the following software:

Operating System Enterprise Edition Standard Edition Personal Edition Developer Edition Desktop Engine SQL Server CE
Windows CE No No No No No Yes
Windows 9x No No Yes No Yes No
Windows NT 4.0 Workstation with Service Pack 5 No No Yes Yes Yes No
Windows NT 4.0 Server with Service Pack 5 Yes Yes Yes Yes Yes No
Windows NT 4.0 Server Enterprise Edition with Service Pack 5 Yes Yes Yes Yes Yes No
Windows 2000 Professional No No Yes Yes Yes No
Windows 2000 Server Yes Yes Yes Yes Yes No
Windows 2000 Advanced Server Yes Yes Yes Yes Yes No
Windows 2000 DataCenter Yes Yes Yes Yes Yes No
Windows XP Professional No No Yes Yes Yes No

Oracle 9i Database comes in three editions: Enterprise, Standard and Personal and requires the following software:

Platform Operating System Version Required Patches
Windows-based Windows NT 4.0 Service Pack 5
Windows-based Windows 2000 Service Pack 1
Windows-based Windows XP Not Necessary
AIX-Based AIX 4.3.3 Maintenance Level 09 and IY24568,
IY25282, IY27614, IY30151
AIX-Based AIX 5.1 AIX 5L release 5.1 ML01+ (IY22854),
IY26778, IY28766, IY28949, IY29965, IY30150
Compaq Tru64 UNIX Tru64 5.1 5.1 patchkit 4
Compaq Tru64 UNIX Tru64 5.1A 5.1A patchkit 1
HP-UX HP-UX version 11.0 (64-bit) Sept. 2001 Quality Pack, PHCO_23792,
PHCO_24148, PHKL_24268, PHKL_24729,
PHKL_ 25475, PHKL_25525, PHNE_24715,
PHSS_23670, PHSS_24301, PHSS_24303,
PHSS_24627, PHSS_22868
Linux SuSE Linux Enterprise Server 7
(or SLES-7) with kernel 2.4.7,
and glibc 2.2.2
Not Necessary
Sun Solaris Solaris 32-Bit 2.6 (5.6), 7 (5.7)
or 8 (5.8)
Not Necessary
Sun Solaris Solaris 64-Bit 8 (5.8) Update 5

Performance comparison

It is very difficult to make the performance comparison between SQL Server 2000 and Oracle 9i Database. The performance of your databases depends rather from the experience of the database developers and database administrator than from the database's provider. You can use both of these RDBMS to build stable and efficient system. However, it is possible to define the typical transactions, which used in inventory control systems, airline reservation systems and banking systems. After defining these typical transactions, it is possible to run them under the different database management systems working on the different hardware and software platforms.

TPC tests

The Transaction Processing Performance Council (TPC.Org) is independent organization that specifies the typical transactions (transactions used in inventory control systems, airline reservation systems and banking systems) and some general rules these transactions should satisfy.

The TPC produces benchmarks that measure transaction processing and database performance in terms of how many transactions a given system and database can perform per unit of time, e.g., transactions per second or transactions per minute.

The TPC organization made the specification for many tests. There are TPC-C, TPC-H, TPC-R, TPC-W and some old tests, such as TPC-A, TPC-B and TPC-D. The most popular test is the TPC-C test (OLTP test).

At the moment the article was wrote, SQL Server 2000 held the top TPC-C by performance results with Distributed Partitioned Views-based cluster systems.


At the moment the article was wrote, SQL Server 2000 held the top TPC-C by price/performance results.

Note. Because most organizations really do not run very large databases, so the key points on which SQL Server 2000 won the TPC-C benchmarks do not really matter to the vast majority of companies.

Price comparison

One of the main Microsoft SQL Server 2000 advantage in comparison with Oracle 9i Database is that SQL Server is cheaper. Other SQL Server advantage is that Microsoft includes the Online analytical processing (OLAP) and Data Mining as standard features in SQL Server 2000 Enterprise Edition. So, you can save up to four times with SQL Server 2000 Enterprise Edition if you use OLAP and Data Mining.

The price comparisons below were based on the

Compare pricing for SQL Server 2000 Standard Edition and Oracle9i Standard Edition:

Number of CPUs Oracle9i Standard Edition SQL Server 2000 Standard Edition
1 $15,000 $4,999
2 $30,000 $9,998
4 $60,000 $19,996
8 $120,000 $39,992
16 $240,000 $79,984
32 $480,000 $159,968

Compare pricing for SQL Server 2000 Enterprise Edition (which include OLAP and Data Mining) and Oracle9i Enterprise Edition with OLAP and/or Data Mining:

Number of CPUs Oracle9i Enterprise Edition Oracle9i Enterprise Edition with OLAP or Data Mining Oracle9i Enterprise Edition With OLAP and Data Mining SQL Server 2000 Enterprise Edition
1 $40,000 $60,000 $80,000 $19,999
2 $80,000 $120,000 $160,000 $39,998
4 $160,000 $240,000 $320,000 $79,996
8 $320,000 $480,000 $640,000 $159,992
16 $640,000 $960,000 $1,280,000 $319,984
32 $1,280,000 $1,920,000 $2,560,000 $639,968

Note. This is not a full price comparison between SQL Server 2000 and Oracle 9i Database. It is only a brief comparison. You can have any discounts and the prices can be increased or decreased in the future. See Microsoft and Oracle to get more information about the price of their products.

Features comparison

Both SQL Server 2000 and Oracle 9i Database support the ANSI SQL-92 entry level and do not support the ANSI SQL-92 intermediate level. In the Features comparison section of this article I want to make the brief comparison of the Transact-SQL with PL/SQL and show some SQL Server 2000 and Oracle 9i Database limits.

T-SQL vs PL/SQL

The dialect of SQL supported by Microsoft SQL Server 2000 is called Transact-SQL (T-SQL). The dialect of SQL supported by Oracle 9i Database is called PL/SQL. PL/SQL is more powerful language than T-SQL. This is the brief comparison of PL/SQL and T-SQL:

Feature PL/SQL T-SQL
Indexes B-Tree indexes,
Bitmap indexes,
Partitioned indexes,
Function-based indexes,
Domain indexes
B-Tree indexes
Tables Relational tables,
Object tables,
Temporary tables,
Partitioned tables,
External tables,
Index organized tables
Relational tables,
Temporary tables
Triggers BEFORE triggers,
AFTER triggers,
INSTEAD OF triggers,
Database Event triggers
AFTER triggers,
INSTEAD OF triggers
Procedures PL/SQL statements,
Java methods,
third-generation language
(3GL) routines
T-SQL statements
Arrays Supported Not Supported

SQL Server 2000 and Oracle 9i limits

Here you can find some SQL Server 2000 and Oracle 9i Database limits:

Feature SQL Server 2000 Oracle 9i Database
database name length 128 8
column name length 128 30
index name length 128 30
table name length 128 30
view name length 128 30
stored procedure name length 128 30
max columns per index 16 32
max char() size 8000 2000
max varchar() size 8000 4000
max columns per table 1024 1000
max table row length 8036 255000
max query size 16777216 16777216
recursive subqueries 40 64
constant string size in SELECT 16777207 4000
constant string size in WHERE 8000 4000

Conclusion

It is not true that SQL Server 2000 is better than Oracle 9i or vice versa. Both products can be used to build stable and efficient system and the stability and effectiveness of your applications and databases depend rather from the experience of the database developers and database administrator than from the database's provider. But SQL Server 2000 has some advantages in comparison with Oracle 9i and vice versa.

The SQL Server 2000 advantages:

  • SQL Server 2000 is cheaper to buy than Oracle 9i Database.
  • SQL Server 2000 holds the top TPC-C performance and price/performance results.
  • SQL Server 2000 is generally accepted as easier to install, use and manage.
The Oracle 9i Database advantages:

  • Oracle 9i Database supports all known platforms, not only the Windows-based platforms.
  • PL/SQL is more powerful language than T-SQL.
  • More fine-tuning to the configuration can be done via start-up parameters.

No comments:

Post a Comment