国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle 數據表分區的策略

2020-07-26 14:37:10
字體:
來源:轉載
供稿:網友
正在看的ORACLE教程是:Oracle 數據表分區的策略。本文描述通過統計分析出醫院信息系統需分區的表,對需分區的表選擇分區鍵,即找出包括在你的分區鍵中的列(表的屬性),對大型數據的管理比較有意義, 本文的工作在Oracle8.1.6下實現。

  Oracle雖然是一個大型的DBMS,但如果不對記錄比較多的表進行處理,仍然發揮不了Oracle管理大型數據的強大功能,因此對某些表進行分區,具有如下優點: 

  分區表中每個分區可以在邏輯上認為是一個獨立的對象; 

  可以在一個表中的一個或多個分區上進行如刪除、移動、析分等維護操作,而不會影響其它分區,具有分區獨立性; 

  如果選擇合適的分區策略,會大大的加快數據的查詢速度。

  一 找出需分區的表

  本節描述通過統計分析出醫院His系統需分區的表,對需分區的表找出包括在你的分區鍵中的列(表的屬性),即選擇分區鍵。

  1、基于訪問頻度找出需分區的表 

  Oracle8i允許訪問數據庫中的審核信息,借助于收集的審核信息,設計者能夠確定哪些表的數據是真正最頻繁訪問的,即找出那些表,需要進行分區。

  打開審核:在作為SYS或SYSSTEM登錄到數據庫后,動行如下腳本,打開對象的審核功能。


  這些代碼的運行將產生“audon.sql”的輸出文件,它包含下面清單中所示格式的語句


  使用命令@audon.sql激活上述代碼以打開審核功能收集收集審核信息,建立一個表以保存概要信息: 


  將審核信息從dba_audit_object表中取出并裝入概要表中: 


  關閉審核: 


  這些代碼的運行將產生“audoff.sql”的輸出文件。

  使用命令@ audoff.sql激活上述代碼以關閉上述對象的審核功能。

  清除審核信息: 


  分析審核信息


  以上是HIS系統臨床醫囑部分24小時內對表的訪問情況,從上面的查詢得表1-1。

  表1-1


  group_order_master( 醫囑套攴主記錄) 、group_order_item(醫囑套攴明細), 表的行數比較少,不適合分區;drug_stock(藥品庫存)雖然存取頻率比較高,但表的行數比較少,因此也不適合分區。我們選擇表的行數比較多、存取頻率比較高的表作分區處理,如 doctor_orders、orders、orders_costs,考慮到doctor_orders是醫生工作站上醫生開的醫囑,orders是由doctor_orders生成、護士工作站上執行的醫囑,兩個表結構類似,而醫囑與藥品、衛生材料、計費聯系比較密切的是Orders,因此重點介紹對表orders的處理。

  2、基于列值選擇分區鍵

  使用Sql*plus下用命令Analyze收集末分區表的統計信息,按照Oracle推薦的取樣20%進行分析,并將統計結果保存在數據字典中。 


  對DBA_TAB_COLUMNS數據字典視圖進行查詢

  產生表1-2 


  表1-2 


  從表1-2中,我們可以看到欲分區表的各個候選分區鍵的分布頻譜,ORDER_CODE(醫囑代碼)鍵值沒有出現一種均勻分布,用它作分區鍵,明顯不合適; 

  ORDER_CLASS(醫囑類別代碼)、ORDERING_DEPT(開醫囑科室代碼),鍵值出現均勻分布,如用它的各個鍵值作基于范圍的分區,每個分區具有的記錄數比較均勻,但這種方法對于每天增加上萬條記錄的表來看,顯然不是最優的。如果選用START_DATE_TIME(醫囑開始時間)建立范圍分區,每月的數據建立一個分區,在每個分區內基于ORDERING_DEPT建立散列子分區,每月的數據形成一個組合分區,會使每個分區的記錄數分布均勻、查詢速度提高、易于備份和刪除。因為大多數的統計和查詢是在一個月的范圍內,而且從實際的查詢效果看,跨月和跨年數據的統計和查詢速度,也比未分區的時候大大縮短,效果非常明顯。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 格尔木市| 望谟县| 通城县| 高平市| 鹰潭市| 武胜县| 定远县| 聊城市| 宜黄县| 武城县| 广东省| 绵竹市| 独山县| 密山市| 当雄县| 云霄县| 格尔木市| 长兴县| 宁晋县| 凤凰县| 卓资县| 竹溪县| 扶风县| 太原市| 进贤县| 南靖县| 五大连池市| 金川县| 巩留县| 海城市| 霍山县| 正安县| 剑阁县| 怀化市| 江门市| 长汀县| 晋宁县| 花莲市| 临沂市| 五常市| 巨野县|