程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫,出類拔萃的原因

Oracle數據庫,出類拔萃的原因

編輯:Oracle數據庫基礎

Oracle數據庫是我很喜歡的一個數據庫,但是也有人喜歡其他的相關的數據庫,不論我們選擇的是那個相關的數據庫,我們的主要實現的目標就是有存儲大量 的相關數據,你應用程序使用的操作系統和語言平台,你的預算,以及是否需要數據倉庫,BI或決策支持系統等。

背景

我的許多朋友,開發人員,應用和系統架構師,有時甚至是系統管理員經常問我同類型的問題:“Bo,在我的應用中該使用SQL Server還是使用Oracle數據庫?”,“BO,我應該將我的Sybase數據庫遷移到SQL Server嗎?”,“哪個數據庫(平台)是最好的?”,“為什麼我們不使用開源數據庫,如MySQL或PostgreSQL?”。

所有這些問題基本上都是相同的 —— 哪個數據庫平台最適合某個應用程序,或是哪個數據庫平台對IT和業務最有意義?

為了回答這些問題,在我推薦任何數據庫平台之前,我會問他們更多的問題(通常是十多個),很多時候人們不理解為什麼一個簡單的問題會引發這麼多問題。

其實很多人不知道為什麼他/她需要一個數據庫,什麼是關系數據庫,數據庫與電子表格之間的差異(以及各自的優缺點),該用Access數據庫還是SQL Server數據庫,或應用程序能從數據庫平台獲得什麼好處。

雖然我不是在這裡宣傳數據庫是什麼,但我知道對IT和非IT人員談論數據庫完全不是一回事,我不想被稱為以數據庫為中心的呆子,不過我認為在21世紀,人們一直在談論BI(商業智能),我也認為最靈活,最復雜和最易維護的系統是由數據驅動的,產生的數據量多了就得用數據庫來保存。

下面我對最流行的數據庫平台只做簡要的介紹,並根據我的經驗和與其它IT界朋友的互動,介紹一下人們是怎麼使用這些數據庫的。

下面我19年來使用過的數據庫:

DBase/FoxBase/FoxPro in the DOS/Novell/Windows 3.x world

MS SQL Server (6.5,7.0,2000,2005 and 2008)

Oracle (7, 8/8i,9i,10g)

Sybase SQL/ASE Servers (4.9.2, 10, 11, 11.9.2, 12/12.5, 15.x)

Sybase IQ 12.6/12.7

Informix/Dynamic (6, 7)

MySQL (4, 5/5.1)

PostGreSQL (8.3.5)/EnterpriseDB

此外,我參加了一系列的數據庫選型評估,如Vhayu和OneTick,我在各行業也有過內存數據庫使用經歷,如Oracle數據庫 TimesTen和Sybase ASE內存版本(Sybase RAP商業版的一部分,它已成為時間序列數據庫領域的一個強力競爭者,特別是去年初和CEP集成後,影響越來越大)。

我曾經擔任過公司全職員工或不同公司不同項目的顧問,真的覺得在數據庫世界中確實沒有銀彈,

選擇什麼數據庫主要取決於以下幾方面因素:

你是誰;

你要實現的目標(業務/功能要求,性能/可靠性/可擴展性/可用性要求);

當前數據庫存儲了多少數據;

應用程序要選擇的操作系統和語言平台;

你的預算有多少;

你是否想/需要構建一個數據倉庫,BI或決策支持系統。

比較不同的數據庫系統就象比較不同的開發平台和操作系統平台:

Java/J2EE與(C#, VB)/.Net比較

Windows與Linux/UNIX比較

Linux與私有UNIX系統如AIX/HP-UX/Solaris/Tru64/Irix比較

Unix與OpenMVS/UniSys/Tandem/IBM Mainframe比較

如果我們在前端辦公應用系統,如訂單錄入,銀行或電信系統中不需要數據庫(主要是擔憂鎖/阻塞,延遲和低I/O等),我們只希望使用數據庫來存儲事實數據,或使用數據庫來備份數據。

當然,所有關系數據庫都提供了不同的功能,即使它們都聲稱遵循ANSI SQL和SQL-92標准,但實際上都有自己的一套SQL語言,這就好比Websphere/Weblogic/Oracle App Server/Sybase Eserver/Jboss之間的關系,它們是J2EE的不同實現,都兼容J2EE規范,但也有自己的擴展和變化。

關鍵任務(OLTP)和高性能系統

如果我們需要數據庫在關鍵業務系統中發揮更重要的作用,並希望做到無故障時間/高可用/集群,可靠性(性能和數據量),災難復制和自動生成報告等目標,或需要實現極端高速和低延遲(HPC,高性能計算)效果,那麼我們可能需要數據庫的企業級功能,但這樣的成本也更高。

HA(高可用)集群功能

各數據庫平台的集群功能如下:

Oracle RAC最適合HA集群,負載均衡和擴展;

MS SQL Server提供HA故障轉移功能,但無負載均衡;

Sybase ASE 15集群與Oracle RAC功能相當;

TeraData本身就是一個分布式數據庫平台;

MySQL集群聲稱TPC-C性能基准測試比Oracle RAC還高;

IBM DB2/UDB在運行AIX HACMP(高可用集群多處理)的IBM P系列/Power服務器和Veritas VCS/Sun等集群上運行得很好。

高性能/低延遲/內存數據庫

Oracle數據庫提供TimesTen內存數據庫;

MySQL的集群使用內存存儲引擎;

Sybase提供ASE內存數據庫;

另外,我們還可以使用RAMSAN/SSD(固態硬盤)安裝SQL Server數據庫,所有與數據庫相關的磁盤I/O都發生在SSD上,而不是傳統硬盤上,因此我們可以大大減少磁盤I/O延遲,提供I/O吞吐量,並提高數據庫的整體性能;

還有其它的內存數據庫,如SQLite或eXtremeDB,但它們大多數要麼只支持嵌入式系統,要麼同一時間只支持單用戶或單連接。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved