“ 軍字 —一— 號”上工 程醫(yī)保接口優(yōu)化
曹彤,王行高,邵新
(蘭州軍區(qū)蘭州總醫(yī)院信息科, 甘肅 蘭州 730050)
【摘要】通過對“軍字一號”工程醫(yī)保接口中出現(xiàn)門診收費反映遲緩現(xiàn)象的追蹤分析,提出了優(yōu)化“軍字一號”工程醫(yī)
保接口數(shù)據(jù)庫字符集的方法。
【關(guān)鍵詞】軍字一號;醫(yī)療保險;oracle字符集
[中圖分類號]TP311.13;R197.324 [文獻(xiàn)標(biāo)志碼】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
我院“軍字一號”工程經(jīng)過系統(tǒng)改造與蘭州市醫(yī)保局成
功聯(lián)網(wǎng)⋯,實現(xiàn)了醫(yī)保病人醫(yī)療和消費的統(tǒng)一,最大限度地
利用了醫(yī)院現(xiàn)有資源,充分發(fā)揮了“軍字一號”網(wǎng)絡(luò)工程的
優(yōu)勢,提高了工作效率21,增強了醫(yī)院的競爭實力。
醫(yī)保系統(tǒng)在最初使用時,大大提高了醫(yī)院的效率,但在
使用一年多時間后,系統(tǒng)逐漸出現(xiàn)了反應(yīng)遲緩的情況,而且
隨著數(shù)據(jù)量的增大,情況越來越嚴(yán)重,在就診高峰時,門診
收費時錄入生化全項(收費共計26項)時,需要4分鐘才能
得出結(jié)算結(jié)果,這種情況已經(jīng)影響系統(tǒng)的正常使用。
醫(yī)保前置機使用數(shù)據(jù)庫為oracle9,我院“軍字一號”系
統(tǒng)數(shù)據(jù)庫為oracle8。醫(yī)保接口由我院自行編寫,對醫(yī)保前置
機的過期數(shù)據(jù)進行備份后,刪除部分?jǐn)?shù)據(jù),運行效果有所改
善,但由于醫(yī)保系統(tǒng)最少需保留一年的數(shù)據(jù),隨著數(shù)據(jù)量的
增加,系統(tǒng)運行速度再次減慢;對醫(yī)保前置機數(shù)據(jù)庫進行分
析,發(fā)現(xiàn)在系統(tǒng)運行時,頻繁進行費用明細(xì)表KC22全表掃
描,而KC22表中已有40余萬條數(shù)據(jù),一次全表掃描需時
10秒左右,多次對數(shù)據(jù)量較大的表進行全表掃描必然導(dǎo)致
系統(tǒng)速度極慢,至此,系統(tǒng)變慢的癥結(jié)已找到,如何徹底解
決這個問題呢?
1 門診收費反映遲緩現(xiàn)象的追蹤分析
檢查費用表KC22的索引,發(fā)現(xiàn)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
新創(chuàng)建索引后運行狀態(tài)無改變。于是直接在sqlplus中執(zhí)行
以下語句進行分析_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)
從執(zhí)行計劃中看出本應(yīng)該通過索引查找的語句,oracle
系統(tǒng)卻認(rèn)為從索引查找的代價比全表掃描查找的代價要高,
于是執(zhí)行全表掃描。使用強制索引語句看一下執(zhí)行結(jié)果:
SQL>select,術(shù)+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)
結(jié)果發(fā)現(xiàn)使用了強制索引語句查找數(shù)據(jù)時,數(shù)據(jù)庫才
使用索引,而且使用索引的代價明顯比全表 |
|