李成亮 姚偉
摘要:在醫(yī)院信息系統(tǒng)中,后關(guān)系型數(shù)據(jù)庫(kù)Cache以高效的性能而得到廣泛應(yīng)用。詳細(xì)介紹了對(duì)醫(yī)院藥品字典的醫(yī)囑項(xiàng)別名進(jìn)行模糊查詢(xún)的四種方法。采用一種計(jì)算查詢(xún)時(shí)間的方法對(duì)其執(zhí)行效率進(jìn)行了測(cè)試,并且結(jié)合每種方法的特性,分析了四種方法的優(yōu)缺點(diǎn),給出了每種查詢(xún)方法的應(yīng)用場(chǎng)合,為cache數(shù)據(jù)庫(kù)模糊查詢(xún)提供了參考。
關(guān)鍵詞:Cache;后關(guān)系型數(shù)據(jù)庫(kù);模糊查詢(xún);方法研究
中圖分類(lèi)號(hào):TP311
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1006-8228(2017)01-51-04
0引言
醫(yī)院信息化的發(fā)展提高了醫(yī)院的工作效率、強(qiáng)化了醫(yī)院的管理水平、簡(jiǎn)化了醫(yī)療的流程步驟,直接反映了醫(yī)院醫(yī)療水平的現(xiàn)代化程度。InterSystems公司研發(fā)的“后關(guān)系型”數(shù)據(jù)庫(kù)(Post-Relational Database)Cach6將對(duì)象數(shù)據(jù)庫(kù)訪問(wèn)、高性能的sQL訪問(wèn)、強(qiáng)大的多維數(shù)據(jù)訪問(wèn)這三種方法融為一體,具有比關(guān)系型數(shù)據(jù)庫(kù)更高的性能、更大的擴(kuò)展性、更快的編程能力。
為了提高醫(yī)生查詢(xún)藥品字典的效率,通常會(huì)在醫(yī)囑項(xiàng)上建立“拼音碼”形式的別名以方便模糊檢索。本文詳細(xì)介紹了對(duì)醫(yī)囑項(xiàng)別名進(jìn)行模糊查詢(xún)的四種方法,通過(guò)測(cè)試,對(duì)這四種方法的執(zhí)行效率進(jìn)行分析,并且結(jié)合每種方法的特征,總結(jié)了四種方法的優(yōu)缺點(diǎn),給出了每種查詢(xún)方法的應(yīng)用場(chǎng)合,以期為Cache數(shù)據(jù)庫(kù)模糊查詢(xún)提供參考。
1.簡(jiǎn)單模糊查詢(xún)的方法
1.1SQL語(yǔ)句使用通配符
格式為:SELECT<列>FROM<表>WHERE<字段名>LIKE<條件>。
sQL語(yǔ)句是—種雙重性語(yǔ)言,包括交互式SQL和嵌入式sQL。本文分別采用了這兩種形式進(jìn)行模糊查詢(xún)。
1.2字符串比較運(yùn)算符的使用
格式為:<多維數(shù)據(jù)>[<入?yún)?gt;。
含義是:若<多維數(shù)據(jù)>包含<入?yún)?gt;,則返回為T(mén)rue;否則為Falseo
Cache數(shù)據(jù)庫(kù)以多維數(shù)據(jù)結(jié)構(gòu)形式存儲(chǔ),開(kāi)發(fā)者可以采用對(duì)象、表格、或者多維數(shù)組進(jìn)行建模。本文采用多維數(shù)組的方式,采用字符串比較運(yùn)算符“[”,將多維數(shù)組中的數(shù)據(jù)與入?yún)⒈容^,若包含入?yún)ⅲ磳?shí)現(xiàn)模糊查詢(xún)。
例如:醫(yī)囑名稱(chēng)為胸腰椎后路創(chuàng)傷釘棒系統(tǒng)(四釘二棒一橫聯(lián))一橫聯(lián)(天津正天),醫(yī)囑別名為XYZHLCSDBXT,入?yún)閄Y。
因“XYZHLCSDBXT”[“XY”,故可以通過(guò)XY模 糊檢索出該醫(yī)囑。
2.藥品字典醫(yī)囑項(xiàng)別名的簡(jiǎn)單模糊查詢(xún)
2.1藥品字典的形式
藥品字典的表名為:PHYZPmCheGL.User.Fuzzy-Query,各字段名分別為:“FQRowlD”、“DocAd”、“Do-cAdAlias”、“UnitPrice”、“Unit”、“DocAdCode”。在“FQRowlD”字段建立主索引、拼音碼形式的醫(yī)囑項(xiàng)別名“DocAdAlias”字段建立索引。
2.2簡(jiǎn)單模糊查詢(xún)的實(shí)現(xiàn)方法
在Cach6數(shù)據(jù)庫(kù)中對(duì)醫(yī)囑項(xiàng)別名進(jìn)行“拼音碼”的模糊查詢(xún),具體的實(shí)現(xiàn)方法如表l所示。
本文分別對(duì)藥品字典10000條、150000條數(shù)據(jù)進(jìn)行模糊查詢(xún)測(cè)試,隨機(jī)抽取兩位、三位拼音碼在類(lèi)方法TestQuery()中進(jìn)行測(cè)試,其結(jié)果如表2、表3所示(單位:毫秒)。
從表2中可以得出:在數(shù)據(jù)量較小的情形下,四種方法執(zhí)行所用時(shí)間相差不大。
從表3中可以得出:方法三執(zhí)行效率最高,方法四執(zhí)行效率最低。方法一執(zhí)行效率低于方法二。
結(jié)合各種方法的形式特征,歸納出不同模糊查詢(xún)方法的優(yōu)缺點(diǎn),如表4所示。
2.4模糊查詢(xún)方法的應(yīng)用場(chǎng)合分析
在數(shù)據(jù)量大、需要進(jìn)行業(yè)務(wù)邏輯運(yùn)算、實(shí)時(shí)事務(wù)處理過(guò)程情形下,適宜采用系統(tǒng)類(lèi)%Query提供的方法,巧妙利用Cach6 ObjectScript語(yǔ)言中的字符串比較運(yùn)算符“[”快速地進(jìn)行模糊查詢(xún),即方法三。
在僅需進(jìn)行模糊查詢(xún)時(shí),可以采用Cach6類(lèi)中預(yù)先定義并封裝好的sQL語(yǔ)句,即方法二。
在一般情形下,可以選用游標(biāo)或者面向?qū)ο蟮哪:樵?xún)方法,即方法一或方法四。3結(jié)論
藥品字典的醫(yī)囑項(xiàng)名稱(chēng)通常比較長(zhǎng),并且為了記憶方便,一個(gè)醫(yī)囑項(xiàng)名稱(chēng)一般會(huì)維護(hù)多個(gè)醫(yī)囑項(xiàng)別名。為提高醫(yī)生檢索的快速性、準(zhǔn)確性,本文詳細(xì)介紹了四種模糊查詢(xún)的方法,并對(duì)每種方法的執(zhí)行效率進(jìn)行了測(cè)試分析,可以得出以下結(jié)論。
(1)方法一、二、四本質(zhì)都是采用sQL語(yǔ)句,方法三根據(jù)Cach6數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)的特性,采用字符串比較運(yùn)算符“[”進(jìn)行模糊查詢(xún),其效率優(yōu)于使用SQL語(yǔ)句。
(2)在復(fù)雜情形下,可以結(jié)合這四種查詢(xún)方法的優(yōu)勢(shì),靈活地加以混合運(yùn)用。
在實(shí)際使用過(guò)程中,采用方法三進(jìn)行模糊查詢(xún),因其執(zhí)行效率較高而普遍被醫(yī)生所認(rèn)可,可推廣直接使用多維數(shù)組進(jìn)行業(yè)務(wù)邏輯處理的方法。