張晶晶 李晨鳴 咸陽職業(yè)技術(shù)學(xué)院
醫(yī)院信息系統(tǒng)是各個醫(yī)護(hù)人員正常工作依賴的有效工具,通過該平臺能夠?qū)⒉∪说拈T診信息、病床信息、財務(wù)管理等信息有效的進(jìn)行統(tǒng)計及處理。強(qiáng)大的醫(yī)療信息系統(tǒng)是保證醫(yī)院能夠正常工作的基礎(chǔ),一旦出現(xiàn)非正常情況,如系統(tǒng)癱瘓或者系統(tǒng)的性能無法跟上正常工作的節(jié)奏,均會導(dǎo)致醫(yī)院的日常運行受到影響。在危急情況下,直接影響病人的生命安全。在整個醫(yī)院信息系統(tǒng)中,數(shù)據(jù)庫系統(tǒng)是主要核心。所以要想確保醫(yī)院信息系統(tǒng)的正常運行,數(shù)據(jù)庫的有效及可靠運行是關(guān)鍵。
Oracle 數(shù)據(jù)庫是目前被各個領(lǐng)域的管理系統(tǒng)中使用最多的一種數(shù)據(jù)庫,但隨著數(shù)據(jù)庫的規(guī)模不斷擴(kuò)大,數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)越發(fā)復(fù)雜,連接數(shù)據(jù)庫的用戶也越來越多等問題,導(dǎo)致數(shù)據(jù)庫性能有所下降。當(dāng)出現(xiàn)此種情況時,便需要對該系統(tǒng)進(jìn)行優(yōu)化和調(diào)整,合理的對Oracle內(nèi)部數(shù)據(jù)結(jié)構(gòu)進(jìn)行資源的配置,充分發(fā)揮Oracle 數(shù)據(jù)庫的高性能優(yōu)勢。為了提高Oracle 數(shù)據(jù)庫的性能,必須要對 Oracle 數(shù)據(jù)庫的體系結(jié)構(gòu)進(jìn)行深入的理解。
Oracle 數(shù)據(jù)庫體系結(jié)構(gòu)中主要包括兩個方面:即用戶進(jìn)程和實例化對象。用戶進(jìn)程在進(jìn)入服務(wù)進(jìn)程之后,進(jìn)入了Oracle 數(shù)據(jù)庫的系統(tǒng)全局區(qū),系統(tǒng)全局區(qū)包含了各種緩存區(qū),其中包括庫緩存、數(shù)據(jù)字典緩存、數(shù)據(jù)庫高速緩存區(qū)、重做日志緩存區(qū)。該區(qū)域的數(shù)據(jù)信息和數(shù)據(jù)庫文件中的數(shù)據(jù)文件、控制文件、聯(lián)機(jī)日志等文件進(jìn)行信息的交互,使得數(shù)據(jù)能夠保存在緩沖區(qū)中,進(jìn)而提高了 Oracle 數(shù)據(jù)庫的效率。
Oracle 數(shù)據(jù)庫是醫(yī)療信息系統(tǒng)的數(shù)據(jù)庫,該數(shù)據(jù)庫將長期服務(wù)于醫(yī)療信息管理系統(tǒng)的整個工作過程。因此,其性能的優(yōu)劣直接決定著醫(yī)療信息系統(tǒng)的整體性能。為了保證使用有限的硬件資源充分提高數(shù)據(jù)庫系統(tǒng)的性能,數(shù)據(jù)庫性能的提高是亟需要解決的問題。Oracle數(shù)據(jù)存儲硬件配置包含了一臺主機(jī)服務(wù)器、一臺備用服務(wù)器、主一臺服務(wù)器存儲、一臺備用服務(wù)器存儲以及兩塊網(wǎng)卡。
數(shù)據(jù)庫的優(yōu)化主要包括了四個階段,這四個階段自底向上分為:第一個階段,對外部環(huán)境及操作系統(tǒng)級別的優(yōu)化,該過程的優(yōu)化就相當(dāng)于在外部提供性能較高的數(shù)據(jù)庫硬件環(huán)境; 第二個階段,數(shù)據(jù)庫配置級別的優(yōu)化,該過程的優(yōu)化可通過對初始化參數(shù)進(jìn)行優(yōu)化設(shè)計以及數(shù)據(jù)庫連接方式的初始化等操作;第三個階段,數(shù)據(jù)庫設(shè)計級別優(yōu)化,數(shù)據(jù)庫設(shè)計過程中會包含空間的分配及物理文件的存儲位置分配等問題,這些分配問題處理完成能夠直接提升數(shù)據(jù)庫的性能;第四個階段,優(yōu)化訪問 Oracle 的 SQL 語句,該優(yōu)化的重心主要為參數(shù)綁定及索引的應(yīng)用上,本文將從第四個方面進(jìn)行數(shù)據(jù)庫優(yōu)化的。
優(yōu)化 SQL 語句是提高 Qracle 數(shù)據(jù)庫的關(guān)鍵技術(shù),對于查詢相同的查詢要求,可以使用不同的 SQL 語句進(jìn)行查詢,不同的 SQL執(zhí)行語句會帶來不同的工作效率。因此,選擇高效率的SQL 執(zhí)行過程也是改變醫(yī)療信息系統(tǒng)的關(guān)鍵。SQL 語句的執(zhí)行過程分為軟解析和硬解析。軟解析首先對語法進(jìn)行檢查,然后是對語義進(jìn)行檢查,再對檢查結(jié)果進(jìn)行分支判斷,判斷是否進(jìn)行優(yōu)化模式的處理。最終形成SQL 執(zhí)行計劃,返回處理結(jié)果。
通過對執(zhí)行計劃建立索引之前 和建立索引之后進(jìn)行對比,可發(fā)現(xiàn)建立索引之后的 cost 從 46468 降低為了 1,掃描代價明顯降低。從而證明了通過優(yōu)化 SQL 語句能夠提高 Oracle 數(shù)據(jù)庫的處理性能, 其在未來具有廣闊的發(fā)展前景。
本文針對醫(yī)療信息系統(tǒng)越來越龐大,數(shù)據(jù)存儲結(jié)構(gòu)越發(fā)復(fù)雜等問題帶來的醫(yī)院信息系統(tǒng)效率下降、響應(yīng)時間變長的問題,提出了通過優(yōu)化 SQL 語句來對醫(yī)療信息系統(tǒng)進(jìn)行整體系統(tǒng)性能提升的方法。該方法通過對 Oracle 的體系結(jié)構(gòu)及 Oracle 性能的相關(guān)對象進(jìn)行監(jiān)測,并對數(shù)據(jù)庫優(yōu)化的四個方面進(jìn)行總結(jié),著手研究通過索引對數(shù)據(jù)庫性能的優(yōu)化。