“ 軍字 —一— 號”上工 程醫保接口優化
曹彤,王行高,邵新
(蘭州軍區蘭州總醫院信息科, 甘肅 蘭州 730050)
【摘要】通過對“軍字一號”工程醫保接口中出現門診收費反映遲緩現象的追蹤分析,提出了優化“軍字一號”工程醫
保接口數據庫字符集的方法。
【關鍵詞】軍字一號;醫療保險;oracle字符集
[中圖分類號]TP311.13;R197.324 [文獻標志碼】A [文章編號]1674-1633(2008)06-0036-02
Improvement of No.I M ilitary M edical Insurance Interface
CAO Tong,W ANG Xing—gao,SHAO Xin
(Lanzhou General Hospital of Lanzhou Military Area Command,Lanzhou Gansu 730050,China)
Abstract:Traces and analyzes the abnormal phenomenon in Oracle in Medical Insurance interface.And presents a kind of method to
improve the performance of No.1 Military Medical Insurance interface.
Key words:No.1 Military Medical Project;medical insurance;Oracle NLS
我院“軍字一號”工程經過系統改造與蘭州市醫保局成
功聯網⋯,實現了醫保病人醫療和消費的統一,最大限度地
利用了醫院現有資源,充分發揮了“軍字一號”網絡工程的
優勢,提高了工作效率21,增強了醫院的競爭實力。
醫保系統在最初使用時,大大提高了醫院的效率,但在
使用一年多時間后,系統逐漸出現了反應遲緩的情況,而且
隨著數據量的增大,情況越來越嚴重,在就診高峰時,門診
收費時錄入生化全項(收費共計26項)時,需要4分鐘才能
得出結算結果,這種情況已經影響系統的正常使用。
醫保前置機使用數據庫為oracle9,我院“軍字一號”系
統數據庫為oracle8。醫保接口由我院自行編寫,對醫保前置
機的過期數據進行備份后,刪除部分數據,運行效果有所改
善,但由于醫保系統最少需保留一年的數據,隨著數據量的
增加,系統運行速度再次減慢;對醫保前置機數據庫進行分
析,發現在系統運行時,頻繁進行費用明細表KC22全表掃
描,而KC22表中已有40余萬條數據,一次全表掃描需時
10秒左右,多次對數據量較大的表進行全表掃描必然導致
系統速度極慢,至此,系統變慢的癥結已找到,如何徹底解
決這個問題呢?
1 門診收費反映遲緩現象的追蹤分析
檢查費用表KC22的索引,發現KC22表本身已建立索
引Kc22表的主健為PK_ KC22_T primary key(AKB020,
AKC190,CKC130,AAE072,AKC220,AKC515)。同時KC22
表還建立了索引RELATION 481831一FK (AKB020,AKC190,
AACO01)。懷疑索引損壞,刪除索引,使用REBUILD命令重
收稿日期:2007—11—30 修回日期:2008—04—28
∞V年 6 36
ol .23 NO .6
新創建索引后運行狀態無改變。于是直接在sqlplus中執行
以下語句進行分析_31。
SQL>set autotrace traceonly
SQL> select from kc22 where akb020=’100004’and
akcl90=’30048174120060825’and akc220=’265’:
Execution Plan
0 SELECT STATEMENT Optimizer=FIRST_ ROW S
(Cost=1402 Card=1 Bytes=21 1)
1 0 TABLE ACCESS (FULL)OF’KC22’(Cost=1402
Card=l Bytes=21 1)
從執行計劃中看出本應該通過索引查找的語句,oracle
系統卻認為從索引查找的代價比全表掃描查找的代價要高,
于是執行全表掃描。使用強制索引語句看一下執行結果:
SQL>select,術+index (kc22 pk—kc22_t) / from kc22
where akb020=’100004’and akcl90=’30048174120060825’and
akc220=’265’;
Execution Plan
0 SELECT STATEMENT Optimizer=FIRST_ ROW S
(Cost=3 Card=l Bytes=21 1)
1 0 TABLE ACCESS (BY INDEX ROWID)OF’KC22’
(Cost=3 Card=1 Bytes=21 1)
2 1 INDEX (FULL SCAN)OF ’PK—KC22_T’(U—
NIQUE)(Cost=26 Card=1)
結果發現使用了強制索引語句查找數據時,數據庫才
使用索引,而且使用索引的代價明顯比全表 |
|