Oracle最新的資料庫產品在去年年底開始進入Beta版狀態,在最初公布的測試版當中,Oracle發布了數百項功能改進。作為目前全球市場佔有率最大的資料庫產品供應商之一,Oracle的新版產品足可以用萬眾矚目來形容,目前可以確定的是,這個產品的命名將是Oracle 11g。除了版本的更新之外,新的Oracle資料庫仍將使用g作為尾碼,以代表這是一個包含了網格技術基礎的資料庫軟體。根據以往幾個版本的經驗,Oracle發布新版資料庫的頻率在3年左右,所以Oracle 11g極有可能在2007年年底之前發布。Oracle 11g是否會進一步擴大Oracle在資料庫市場的領先優勢呢?本文將集中解析Oracle 11g當中新增的功能,從而在一定程度上獲得這一問題的答案,並瞭解Oracle資料庫產品的發展方向。
新的管理功能
在Oracle 11g當中,使用者可以獲得多個方面的效能提升。在2006年10月23日舉行的Oracle OpenWorld大會上,Oracle的執行副總裁Chuck Rozwat曾親自對Oracle 11g的效能進行了演講。據Chuck Rozwat介紹,Oracle移動資料的速度已經超過了專門的檔案系統,這一方面得益於Oracle對資料庫引擎的最佳化,同時也與Oracle 11g中應用的大量壓縮技術有關。例如,在資料表和資料索引方面的壓縮就有不小的增強,而且使用者可以對已壓縮資料進行資料列增刪等多項常規操作。另外,在觸發器等方面,Oracle 11g的運行速度也將更快,特別是針對DML的觸發器程式,執行速度可以獲得四分之一左右的提升。
Oracle 11g中增加了一種新的觸發器,被稱為compound,這種觸發器允許同時處理BEFORE、ROW和AFTER等部分。這樣做的好處是有助於消除錯誤,同時分別管理每個部分的工作狀態。
ADR(Automatic Diagnostic Repository),意即自動診斷庫,利用該機制,Oracle資料庫可以通過預設的基準自動捕獲符合標準的問題,同時也可以執行一些確定的資料庫健全狀態檢查工作。發現的這些問題可以被記錄以輔助使用者管理資料庫的狀態,而且這些資訊還能夠被發送到Oracle的支援部門。另一項與ADR有關的機制是IPS(Incident Packaging Service),通常被稱為事件打包服務。IPS可以將那些需要跟蹤的、與特定的事件相關的所有資訊收集並打包,供管理員進行特定問題域的管理。
值得一提的是,Oracle 11g當中的補丁更新可以按照功能特性進行細分,這樣使用者就可以瞭解到哪些補丁是與當前所使用功能相關的,同時也可以基於特定的功能範疇來尋找是否有補丁可用,並且該機制還支援對特定功能相關補丁的訂閱。另一個值得關注的特性是Oracle 11g支援熱補丁,這樣在進行漏洞修複和功能修補的時候就無需停止資料庫伺服器了,這對於企業使用者來說絕對是一個好訊息。
XML受寵
在Oracle 11g可以使用CLOB及二進位兩種方式儲存XML資訊,靈活性很高。Oracle 11g還支援針對XML的查詢機制,同樣有多種機制可以選用,例如XQuery。XQuery是W3C推出的一組關於XML資料查詢和搜尋的規範,相對來說,XQuery的文法比直接操作XML要簡單和直觀。說到在XML資料處理方面的增強,值得一提的是,Oracle 11g開始支援JSR 170,這是一套基於Java的內容儲存倉庫API。Oracle 11g提供了二元性的XML支援,意即在實際使用過程中,使用者既可以將XML嵌入到PL/SQL中使用,也可以將PL/SQL整合到XML中使用。
在Oracle 11g當中,會增加一種新的資料類型,被稱為simple_integer。這種新的整數類型具有非空屬性,而在處理速度上要比PLS_INTEGER更快。另外,在11g中還會包含被稱為虛擬列(Virtual Columns)的資料表功能支援。通過該機制使用者可以根據實際的業務功能來定義資料表列,從而構建更加複雜及更加靈活的資料表。Oracle 11g支援一種新的資料分割配置,令使用者可以基於時間進行分區,例如分離出某個時間間隔內新增的資料內容,這進一步提高了Oracle資料庫分區機制的靈活性。
除此之外,Oracle 11g在資料表方面還有很多的改善,例如增強唯讀資料表、為一張表格綁定多個觸發器並為這些觸發器設定先後順序等。
當XML面世之時,也許沒有哪個資料庫廠商會對這種技術給以足夠的關注,然而在今天,XML已經開始對資料存放區產生巨大的影響。由於XML在互連網應用領域被作為標準廣泛地應用於資料交換和儲存,下一代資料庫的形態發展過程將無可避免地留下XML的足跡。XML在資料存放區方面有一個明顯的優點,那就是可以直接將邏輯關係編寫在XML檔案當中。將XML融入主流的資料庫引擎,首先要做到的一點是如何將現有的關係型資料輸出成XML格式。現在已經有一些資料庫可以做到將SQL查詢結果直接轉換成XML形式,這樣應用程式就可以直接利用這些XML檔案結果作為內容輸出源了。在此基礎上,將已有的文檔和資料通過XML的方式匯入到資料庫也是問題的一個重要方面,而這個工作無疑要複雜得多。其實將XML格式的文檔匯入到資料庫中並不困難,因為XML檔案具有內在的邏輯和規範,困難之處在於將千差萬別的文檔轉換成XML格式的檔案。當然,資料的查詢工作也需要做出相應的改變,在支援XML的資料庫當中單純的依靠SQL查詢已經難以保證效率。有兩條截然不同的道路可以實現傳統資料庫與XML的融合,一種方式是資料庫廠商可以編寫更多的轉換器和工具以實現傳統資料庫實體與XML資料的互動,即將XML資料作為各種資料表現形式中的一種來看待;另一種方式就是徹底的在資料庫引擎底層納入對XML資料的支援,甚至基於XML來設計和構建資料庫產品。不知道有多少資料庫廠商有勇氣採取後一種策略,當然這也取決於XML在資料存放區和表現領域會成長到什麼程度。不過可以肯定的一點是,支援XML將會給資料庫廠商帶來足夠的回報,所以在各個廠商的新型資料庫軟體的功能當中,我們都會看到很多XML方面的字樣。