Oracle下的資料分片技術(轉)

ba發表於2007-08-11
Oracle下的資料分片技術(轉)[@more@]Oracle公司出品的ORACLE Enterprise 8.0.5以其優越的效能博得了廣大使用者的青睞,
它以豐富的內嵌函式,PL/SQL支援,多平臺,Application Server整合等,給開發人員提供
了極大的靈活性。
在ORACLE的使用者許可權分配中,只提供對錶、函式、同義詞、檢視、包等的Insert,Update,
Select,Delete,Execute等操作,並未提供欄位級的許可權設定(實際上,對大型資料庫進行欄位級的
許可權設定雖然帶來了安全性方面的好處,但對於效能的存在一定的影響),因此,對於大型
MIS系統,進行資料的分片是在所難免的。
一般地,一個典型的MIS資料庫平臺設計是這樣的:

對使用者許可權的分配是透過對ORACLE臨時系統表來實現的:
1、在需要分片的表(CUSTOMER)中建立相關欄位,如SGRANT_NUM number(20)及所屬部門 SUNIT_ID varchar(10),
2、對該表建立動態檢視 CUSTOMER_PV
select * from CUSTOMER A
where CD_WAREHOUSE.SUNIT_ID is null
or exists (
select * from CUSTOMER B where A.SUNIT_ID = B.SUNIT_ID
and ( B.SGRANT_NUM >= TO_NUMBER(SUBSTR(USERENV('CLIENT_INFO'), 1, 10))
and ( B.SGRANT_NUM <= TO_NUMBER(SUBSTR(USERENV('CLIENT_INFO'), 11, 10)) ) )

3、在使用者登入系統時修改使用者環境 client_info 中的分片號;
4、這樣,對設計者,不存在分片問題,對終端使用者,可定義該使用者的組織分片號來約束該使用者能夠存取的資料。


優點:
1、由伺服器自動完成,對設計無任何影響;
2、速度快,對巨量資料無明顯影響;

缺點:
1、只能根據組織(或其他)進行縱向分片,不夠靈活;
2、技術實現複雜,主表的更改將直接影響檢視(需要重新生成);
3、一旦組織機構變化,則分片需要重新設定。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-947657/,如需轉載,請註明出處,否則將追究法律責任。

相關文章