• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Oracle 數據表分區的策略

    發表于:2008-09-05來源:作者:點擊數: 標簽:oracleOracleORACLE分區數據
    本文描述通過統計分析出醫院 信息系統 需分區的表,對需分區的表選擇分區鍵,即找出包括在你的分區鍵中的列(表的屬性),對大型數據的管理比較有意義, 本文的工作在 Oracle 8.1.6下實現。 Oracle雖然是一個大型的DBMS,但如果不對記錄比較多的表進行處理,仍
    本文描述通過統計分析出醫院信息系統需分區的表,對需分區的表選擇分區鍵,即找出包括在你的分區鍵中的列(表的屬性),對大型數據的管理比較有意義, 本文的工作在Oracle8.1.6下實現。

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

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

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

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

      一 找出需分區的表

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

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

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

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

    set echo off feed off ver off pages 0
    spool audon.sql
    select ’audit select on ’||owner||’.’||object_name||’ by
    access;’
    from dba_objects
    where object_type in (’VIEW’,’TABLE’) and owner in
    (’ORDADM’);
    spool off
    set echo on feed on ver on

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

    audit select on ORDADM.DOCTOR_ORDERS by access;
    audit select on ORDADM.GROUP_ORDER_ITEMS by access;
    audit select on ORDADM.GROUP_ORDER_MASTER by access;
    audit select on ORDADM.ORDERS by access;
    audit select on ORDADM.ORDERS_COSTS by access;
    audit select on ORDADM.ORDERS_SHEET_IMAGE by access;
    audit select on ORDADM.VITAL_SIGNS_REC by access;

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

    create table aud_summary (
    obj_name varchar2(30),
    owner varchar2(30),
    hits number);

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

    insert into aud_summary
    select obj_name,owner,count(*)
    from dba_audit_object
    group by obj_name,owner;

      關閉審核:

    set echo off feed off ver off pages 0
    spool audoff.sql
    select ’noaudit select on ’||owner||’.’||object_name|| ’
    by access;’
    from dba_objects
    where object_type in (’VIEW’,’TABLE’) and owner in
    (’ORDADM’);
    spool off
    set echo on feed on ver on

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

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

      清除審核信息:

    delete sys.aud$

      分析審核信息

    col obj_name form a30
    col owner form a20
    col hits form 99,990
    selec obj_name,owner,hits from aud_summary;
    OBJ_NAME OWNER COUNT(*)
    ----------- ------------- ----------
    DOCTOR_ORDERS ORDADM 30309
    DRUG_STOCK PHARMACY 11094
    GROUP_ORDER_ITEMS ORDADM 1030
    GROUP_ORDER_MASTER ORDADM 1196
    ORDERS ORDADM 40421
    ORDERS_COSTS ORDADM 10109

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

      表1-1

    行數 命中率
    doctor_orders 2052709 30309
    drug_stock 2511 11094
    group_order_item 3800 1030
    group_order_master 186 1196
    orders 1633010 40421
    orders_costs 2403214 10109

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

      

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>