1、SQL Model子句
也許現在最受關注的就是Oracle數據庫10g新數據倉儲特征中的SQL Model子句。該子句讓用戶將類似數據表模型插入select語句中,以前這在某種程度上屬於的OLAP服務器關注的范圍,如Oracle Express以及Oracle 9i OLAP。SQL Model子句給Oracle分析性的查詢一個全新的標准並且說明了SQL一般工作模式的一些缺陷。
SQL Model子句是為了說明以下的情況:在過去,客戶先從關系型數據庫中取出數據、然後將它們導入數據表如Microsoft Excel中。通常,這些模式涉及一系列宏,這些宏裡的數據集合包括一系列的商業尺度、時間變更周期以及一套復雜的、很難用平常的SQL表示的商務尺度。我設法說服一些客戶SQL的局限就是利用一系列獨立的Excel表格,而這些給客戶提供了他們所需要的分析能力、復制數據的可測量性和可靠性、然而不久缺乏對全局的控制能力也顯露出來。
SQL Model子句讓一般的SQL語句能夠在select語句的結果中創建多維數組,在這一數組上執行一些行間和列間的計算,然後對包含模式結果的數據表格進行升級。使用MODEL子句的SQL示例如下:
selectSUBSTR(country,1,20)country,SUBSTR(prod,1,15)prod,year,sales
FROMsales_view
wherecountryIN (’Italy’,’Japan’)
MODEL RETURNupdateDROWS
PARTITIONBY(country)
DIMENSIONBY(prod,year)
MEASURES(salesales)
RULES (
sales[’Bounce’,2002]=sales[’Bounce’,2001]+
sales[’Bounce’,2000],
sales[’YBox’,2002]=sales[’YBox’,2001],
sales[’2_Products’,2002]=sales[’Bounce’,2002]+sales[’YBox’,2002])
ORDERBYcountry,prod,year;
2. SQL Access Adviser
Oracle數據庫10g Server Manageability的部分特征就是,SQLAccess Adviser給指定的工作量介紹了最佳索引和物化視圖的結合。可行方案就是(通過DBMS_ADVISOR包)或者通過新推出的基於Web的Oracle Enterprise Manager中的 Advisor Central元件,SQLAccess Adviser最初就和Oracle9i一起建立在索引和概要advisor並且為調優和總結存儲數據提供了一站式的服務。
更多有關SQLAccess Adviser的信息可以在OracleWorld這一白皮書上找到。
3、多維OLAP引擎的完善
利用Oracle9i,起初單獨的Express多維engine現在就合和Oracle數據庫連成一體了。通過Oracle10g,傳統的關系型Oracle engine就開始明顯起來。
首先就是對較大的分析型workspaces進行劃分、目前在Oracle OLAP世界引進了一些高級分區選項,它們備受Oracle數據庫用戶的歡迎。現在分析型workspaces儲存在Oracle schema的AW$表中,這一分析型workspaces能夠用AW$表再進行細分並允許你將單獨的analytic workspace列入10GB字段,每個表的行中都包含著一個部分。這些表還可以像其他Oracle表一樣進行細分,你也可以將行放入每個表空間。再者,每個表空間當然儲存在不同的物理磁盤單元的數據文檔裡。雖然這樣做有很有益,細分分段大小也就是細分數據的唯一方法,你也不能在analytic workspace對每個分區進行詳細說明。Oracle 10g OLAP現在還詳細說明在analytic workspace裡的哪一個對象劃分進哪一個區域,如果對象相當大還能通過分段大小再進行細分。
分析空間的變化現在能夠被區分開來,通過一些尺度或CONCAT尺度參考。10g的多維engine將每個變量部分當作單獨的物理對象儲存,這樣就可以直接在AW$表裡區分行(允許你越過不同的表空間和物理磁盤驅動器);而變量則對於應用軟件、簡化數據模型以及允許Oracle執行所有高難度的任務來說僅僅只是一個對象。