董向文
(廣西中醫藥大學第一附屬醫院信息科,廣西南寧 530023)
醫療信息系統為醫護人員提供信息支持,確保日常工作可以順利進行,作為一個具備綜合信息處理能力的平臺,醫療信息系統可以全面整合病人的門診信息、床位信息、財務信息等。應用該信息系統后,病人可直接在網上掛號、預約,無須提前排隊掛號,看病更方便快捷。此外,病人的看診、藥品、床位信息可以在各部門間實時傳輸,實現醫院業務透明化,提升工作效率,降低醫療事故的發生幾率。醫療信息系統運行穩定與否,直接決定了醫護人員是否能正常工作,若系統運行狀態異常,會直接影響醫院的日常運行,嚴重時還會影響到病人的生命安全,因此構建運行穩定、性能優渥的醫療信息系統就顯得尤為重要,該文基于Oracle 數據庫技術,對醫療信息系統的優化進行了研究。
目前,在多個領域的管理系統中已經廣泛地運用Oracle 數據庫,Oracle 當中的ODI 是基于Java創建的E-LT 引擎,適配于多種主流數據源,可與Oracle 數據庫實現無縫對接,能滿足重要數據的集成需求。但是隨著系統用戶的增加,Oracle 的規模和數據結構也越來越大,致使信息管理能力有所下降。為了妥善解決這些問題,需要及時對系統進行優化,對Oracle 數據庫的內部結構進行調整,重新配置資源,激發其高性能優勢。為了達到提升Oracle 數據庫性能的目的,需要對其內部體系結構進行深入了解和探究,其具體體系結構如圖1所示[1-2]。

圖1 Oracle數據庫體系結構
該體系結構由用戶進程和實例化對象兩方面構成。進入用戶進程就意味著進入了系統的全局區。其數據信息可以與數據庫文件完成信息交互,交互后的數據可完整地存儲于緩沖區,從根本上提升Oracle 數據庫的工作效率。
可以利用對Oracle 數據庫進行性能監測的方式來提升其性能。Oracle 數據庫內部具有AWR(自動負載信息庫),可以當做相關對象完成檢測數據庫性能的工作。AWR 能將所有和數據庫性能有關的數據進行統計,用量度的方式將具體統計結果表示出來,將Oracle 數據庫存在的潛在性能問題體現出來。MMON 模塊會分時段對數據庫內容進行采集,確保數據具備時效性。AWR 在完成數據信息采集后,會以數據表的形式將其保存下來,并以WRMMYM_*和WRHMYM_*的格式對其命名,用戶可通過輸入關鍵信息的方式完成數據查詢工作。具體的性能檢測視圖概況如圖2 所示[3-4]。

圖2 性能檢測視圖概況圖
Oracle 數據庫作為醫療信息系統的主要構成部分,需要長期服務于系統的工作過程。為了使硬件資源的性能充分發揮,首先要提升數據庫性能,相應的硬件配置表如表1 所示。

表1 硬件配置表
數據庫優化具體劃分為3 個階段:1)優化外部環境和操作系統級別,主要目的是在外部構建更適合數據庫硬件運行的環境。2)優化數據庫配置級別,主要優化內容是對初始化參數和連接方式進行優化。3)優化SQL 語句,該優化的側重點應放于參數綁定和索引應用上,以下會對優化SQL 語句進行深入研究[5-6]。
對SQL 語句進行優化,可以一定程度上提升Oracle 數據庫的性能,在出現同樣的查詢要求時,可以運用不同的SQL 語句完成查詢工作,不同的SQL語句工作效率也各不相同。因此,選擇適宜的SQL執行語句有助于提升醫療信息系統的性能,其具體執行過程如圖3 所示。

圖3 SQL語句處理過程
從圖3 可以看出,該流程包含軟解析和硬解析兩個部分。軟解析模塊依次對查詢語句的語法和語義進行檢查,結合檢查結果對優化模式進行決定,最終實現SQL 計劃的執行。
表2、表3 為仿真實驗中創建索引之前和之后的執行計劃。

表2 創建索引之前的執行計劃

表3 創建索引之后的執行計劃
通過對比二者的Cost 值可以得出以下結論,創建索引之后,Oracle 數據庫的性能得到了大幅度提升,優化效果明顯。
當Oracle 數據庫創建完成后,所用的字符集無法改變,因此,在醫療信息系統構建的初步階段就應提前做好字符集種類的選定工作[7-8]。在Oracle 數據庫中,有與之關聯的NLS_LANG,其參數為NLS_LANG=language_territory.charset。其 中,language 代表系統所用語言,territory 則代表日期及數字格式,charset 代表指定字符集。Oracle 數據庫進行imp/exp等程序時,可以起到備份和還原醫療信息系統數據的作用。exp 命令,可導出遠程數據庫服務器中的數據并將其保存至dmp 文件之中,imp 命令則是將dmp文件中存儲的數據傳送至遠程數據庫服務器[9-10]。此種導入導出方式能創建出兩個屬性相同的數據庫,分別用來測試和正式使用。
在Oracle 數據庫的使用過程中,如果字符集不同則數據的導入將會受到影響,所以必須一并導入所有的字符集,避免出現亂碼。1)可應用多種方法對Oracle server 端的字符集進行查詢。2)對Oracle client端字符集進行確認,通過import 將Oracle 數據庫的dmp 文件進行導入,若二者所應用的數據庫字符不一致,可能會出現數據亂碼的情況,可以借助修改注冊表的方式來重新選取客服端字符集。3)DMP 文件字符集的查詢方法。采用Oracle 數據庫中的exp工具導出DMP 文件中囊括的字符集信息,由于醫療信息系統中的DMP 文件巨大,內存通常多達10 G 以上,因此容易出現打開緩慢或打不開的情況,此時可采用UltraEdit軟件對其進行編輯,提升打開速度[11-12]。
在設計導入實施方案時,需要應用到兩臺服務器,可將A機設定為oracle10g,system為管理員賬號,dbserver 為全局數據庫,us7ascii 為字符集。B 機數據庫服務器則為oracle11g,除了字符集為zhs16gbk 以外,包括安裝路徑在內,都與A 機數據庫完全相同。1)確定字符集,登錄plsql 之后輸入相應的腳本對字符集進行確定。2)導出文件,此項工作可以在DOS 中完成。利用exp 將醫療信息系統中的數據轉化為二進制形式,然后下載成相應的dmp 文件,便于后續的數據調取。3)運用UltraEdit 工具,由于醫療信息系統中的文件巨大,打開文件時采用普通的文本工具難度會增大,所以要合理運用UltraEdit 工具對需要導出的文件進行編輯來縮短其打開時間[13-14]。
再次將下載好的dmp 文件上傳至系統數據庫,數據導入之后要對管理員口令進行更改,然后再對系統進行重啟[15-16]。應用此技術可有效解決漢字顯示亂碼問題,提升醫療信息系統的運行穩定性。
當前醫療信息系統內部所存信息量非常巨大,而且存儲結構比較復雜,針對這種現狀,提出了基于Oracle 數據庫對醫療信息系統進行優化的設想。通過檢測Oracle 數據庫體系結構和相關對象的方式對其進行優化,并融入導入數據中文亂碼優化技術,對醫療信息系統進行進一步優化。
對系統內存中的大量醫院信息數據進行調取、深度挖掘和整合,為醫院決策層和醫護人員提供更加具有準確性和時效性的決策支持和信息服務,有助于提升醫護系統的精細化管理水平,擁有廣闊的發展空間和前景。