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

Oracle平台下的數據分片技術解析

編輯:Oracle數據庫基礎
Oracle公司出品的數據庫管理系統以其優越的性能博得了廣大用戶的青睐,它以豐富的內嵌函數,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、一旦組織機構變化,則分片需要重新設置。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved