999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Oracle數據庫全文檢索性能研究

2016-10-29 01:52:32龔建華
現代計算機 2016年27期
關鍵詞:數據庫文本

龔建華

(國防信息學院,武漢 430010)

Oracle數據庫全文檢索性能研究

龔建華

(國防信息學院,武漢430010)

隨著全文檢索應用場景越來越多,更加需要了解數據庫全文檢索的性能。介紹Oracle數據庫全文檢索的設置方法,然后加載測試數據,對全文檢索和模糊查詢的性能進行比對測試,最后對全文檢索的查全能力和查詢速度進行詳細分析。

數據庫;全文檢索;模糊查詢

0 引言

隨著信息社會的不斷發展,獲取信息比過去任何時候都變得更加容易,人們在碰到疑難問題時會主動查詢信息,查詢信息的頻率比過去高出了很多倍。生產生活中涌現的大量信息通常以文本形式呈現,很多信息還沒有來得及結構化,或者這些根本沒有必要進行結構化,導致目前從文本中查找信息是信息查詢的主流形式。由于文本難以量化比對大小,因此與數量、日期類型的數據查詢相比,文本的比對更復雜、更費時。

數據庫全文檢索是在數據表文本字段上建立全文索引,文本查詢完全在索引上進行,毋庸置疑,建立全文索引可以提高文本數據查詢的效率,但是查詢效率到底能夠提高多少,查詢效率與哪些因素有關,這些都是需要深入研究的問題。本文以Oracle10g企業版10.2.0.1.0版為研究對象,對比研究Oracle數據庫全文檢索性能。

1 全文檢索設置

1.1解鎖CTXSYS用戶

Oracle數據庫建立全文檢索在的工具包在CTXSYS模式中,安裝數據庫時,默認情況下CTXSYS用戶是鎖定的,在使用CTXSYS工具包之前,必須解鎖CTXSYS用戶,具體操作如下:

1.2CTX_DDL包授權

CTX_DDL包是設置全文索引的工具,因此在創建全文索引之前需要獲得該包的執行權限,例如把該包的執行權限授予SCOTT用戶,具體操作如下:

1.3創建中文分詞名稱

在Oracle數據庫中,針對不同國家的語言提供了不同的分詞器,常用的中文分詞器主要有CHINESE_VGRAM_LEXER和 CHINESE_LEXER,其中CHINESE_LEXER是新的漢語分詞器,支持中文和U-nicode字符集,該分詞器最大的改進是能夠認識大部分常用漢語詞匯,因此能夠更有效地分離詞匯。這里選用CHINESE_LEXER分詞器,使用該分詞器之前,需要建一個分詞器實體名,操作如下:

其中,CHINESE_LEXER是分詞器,MY_CHI-NESE_LEXER是分詞器實體名。

1.4創建全文索引

(1)創建數據表

在SCOTT模式下,創建一張用于存儲大量文本的數據表,操作如下:

其中,TXT字段是clob類型,可以存儲大量文本,單條記錄可以高達4G容量,NAME用于文本來源的文件名稱,ID只是一個編號。

(2)創建全文索引

Oracle數據的全文索引有 CONTEXT、CTXCAT、CTXRULE、CTXXPATH等四種類型,對DT表的TXT字段創建CONTEXT類型全文索引,操作如下:

create index IDX_DTTXT on SCOTT.DT(TXT)indextype is ctxsys.context parameters('LEXER MY_CHINESE_LEXER');

執行這條命令即可創建全文索引,其中ctxsys.context是全文索引類型,'LEXER MY_CHINESE_LEXER'表示使用名稱為MY_CHINESE_LEXER的分詞器。

2 全文檢索測試

由于全文檢索是在全文索引的基礎上做檢索,從理論上講應該比模糊查詢直接針對文本做查詢要快一些,下面通過對比分析研究全文檢索的檢索速度。

2.1給DT表加載測試數據

為了能夠重現測試結論,這里選用中文版HTML格式JAVADOC系列文檔作為測試數據,該JAVADOC文檔集共有8964篇、約198M字節,是Java語言的編程指南,每篇文檔包含中英文字符,可作為測試數據。

向Oracle數據庫加載CLOB字段內容時,通常不能直接插入,而應該采用流的方式加入,所以這些測試數據需要編寫程序加載到DT表中,具體操作略,數據加載完畢后,DT表所占表空間大小約550M字節。

2.2維護全文索引

每次更新DT表TXT字段的數據后,應當及時進行全文索引維護,即同步和優化,使全文索引與TXT字段的內容吻合,具體操作如下:

2.3全文檢索與模糊查詢對比測試

(1)查詢工具與查詢命令

使用PL/SQL Developer 9.0中文版為查詢工具,使用下列語句來對比測試結果

模糊查詢的語句為:

(2)查詢方法

為提高對比分析的精確性,每次查詢盡可能采用一致的環境,使用相同的查詢工具,在相同的查詢窗口,每次查詢前等待CPU空閑。PL/SQL Developer 9.0設置為一次顯示全部查詢結果,操作系統中不額外運行其他應用程序,避免對系統資源的干擾。選用了“合成”、“網絡”、“鏈接”等檢索詞。

(3)查詢結果

全文檢索和模糊查詢對比測試的結果如表1所示。

表1 全文檢索與模糊查詢對比測試結果

表中:

記錄數占比=查詢結果記錄數/DT 表總記錄數(式1)

記錄數互比=全文檢索的結果記錄數/模糊查詢的結果記錄數(式2)

查詢速度互比=模糊查詢的耗時/全文檢索的耗時(式3)

耗時是查詢過程所使用的時間,以秒為單位,來自PL/SQL Developer 9.0 給出的結果。

3 全文檢索性能分析

(1)對測試數據本身的分析

測試選用JAVADOC文檔集屬于一個單一的專業領域,共有8964篇,占用550M左右表空間,有一定的規模,數據量對全文檢索性能分析有意義。

測試中選擇了7個檢索詞,這7個檢索詞的查詢結果的記錄數占比從0.007變化到0.975,覆蓋范圍比較廣,檢索詞選取對全文檢索分析有意義。

(2)查全能力分析

圖1 全文檢索記錄數與模糊查詢記錄數

圖2 全文檢索記錄數與模糊查詢記錄數互比

模糊是查詢能夠把滿足條件的所有數據都查詢出來,而全文檢索由于可能存在分詞不正確的原因,可能有少數滿足條件的記錄查詢不到。從圖1和圖2可以看出,對相同表和相同的檢索詞,全文檢索和模糊檢索的結果基本相差很小,記錄數互比最高到0.9998856,筆者推斷,記錄數互比很高的原因是我們使用專業文獻作為測試數據集,并且使用專業詞匯作為檢索詞。基本可以認為在專業領域全文檢索可以查全所有結果。

(3)查詢速度分析

圖3 模糊查詢耗時

從圖3中可以看出,無論查詢結果記錄占比為多少,模糊查詢的時間基本上是一個常數,在16秒左右。反過來說明,模糊查詢的耗時與查詢結果的數量沒有關系。這個測試結論印證了模糊查詢機制,模糊查詢要將檢索詞與所有記錄的TXT字段內容進行比對,對同一個表每個檢索詞比對記錄數是相同的,在一篇文檔內比對的方法也是相同的,所以每個檢索詞的查詢耗時基本相同。

圖4 全文檢索耗時

從圖4中可以看出,全文檢索的耗時隨著檢索結果的增加線性增加,這與全文索引的存儲機制有密切關系。如果有多篇文檔包含同一個索引詞,那么就會對這個索引詞建立起這些文檔的編號鏈表,包含同一個索引詞的文檔越多,鏈表就越長。全文檢索就是找到索引詞的鏈表,并解析鏈表把文檔編號分析出來。因此當索引詞的記錄數越多時,鏈表就越長,耗時就越多,基本是一個線性遞增的關系。

從圖5中可以看出,查詢結果記錄數占比小于0.1時,全文檢索與模糊查詢的速度互比有幾十倍甚至上百倍,全文檢索的優勢非常明顯。當查詢結果記錄數占比大于0.4時,全文檢索與模糊查詢的速度互比小于5,最小只有2.426,全文檢索的優勢減弱。綜合圖3和圖4可以看出,模糊查詢的耗時與查詢結果多少無關,基本是一個常數,而全文檢索查詢的結果記錄越多耗時越長,這是查詢結果越多時全文檢索優勢迅速下降的根本原因。雖然全文檢索的優勢已經不是十分明顯,但是全文檢索兩倍以上的速度優勢仍然有應用價值。

圖5 全文檢索與模糊查詢的速度互比

[1]蒙輝,陳燕.Oracle Text技術在復雜結構數據庫中的應用[J].計算機技術與發展,2007,17(4):38-44.

[2]葛振國,李建,何林糠等.基于Lucene的Oracle數據庫全文檢索.信息技術,2010(3):156-158.

[3]楊寶峰.數據庫全文檢索技術.黑龍江科學信息,2007(5)45-45.

Research on the Performance of Oracle Full Text Retrieval

GONG Jian-hua
(PLA Academy of National Defense Information,Wuhan 430010)

With more and more applications in full text retrieval,understanding of the performance of database full-text retrieval is needed.Introduces the method of setting Oracle text,and then the loads test data,tests the performance of full-text retrieval and fuzzy query,analyses the search ability and speed of the full-text retrieval in details.

Database;Full Text Retrieval;Fuzzy Query

1007-1423(2016)27-0036-04DOI:10.3969/j.issn.1007-1423.2016.27.010

龔建華(1973-),男,湖北麻城人,副教授,碩士研究生,研究方向為信息系統設計與數據工程

2016-06-21

2016-09-20

猜你喜歡
數據庫文本
初中群文閱讀的文本選擇及組織
甘肅教育(2020年8期)2020-06-11 06:10:02
在808DA上文本顯示的改善
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學隱喻
論《柳毅傳》對前代文本的繼承與轉化
人間(2015年20期)2016-01-04 12:47:10
主站蜘蛛池模板: 精品一區二區久久久久久久網站| 欧美伦理一区| 伊人久久婷婷| 亚洲高清免费在线观看| 欧美成一级| 成人毛片免费在线观看| 国产一级片网址| 国产精品人人做人人爽人人添| 成人综合网址| 国产一区二区三区日韩精品 | 日韩东京热无码人妻| 国产精品久久自在自线观看| 久久精品国产在热久久2019| 亚洲av无码片一区二区三区| 制服丝袜国产精品| 成人精品视频一区二区在线| 国产精品高清国产三级囯产AV| 在线观看无码a∨| 99视频精品全国免费品| 丰满少妇αⅴ无码区| 亚洲精品色AV无码看| 国产亚洲视频在线观看| 深爱婷婷激情网| 人人91人人澡人人妻人人爽 | 国产一区二区三区夜色| 日本高清成本人视频一区| 欧洲亚洲欧美国产日本高清| 欧美无遮挡国产欧美另类| 国产成人调教在线视频| 五月天久久婷婷| 在线精品视频成人网| 国产三级韩国三级理| 精品国产Av电影无码久久久| 亚洲—日韩aV在线| 久久久久国产一级毛片高清板| 国产一在线| 97超级碰碰碰碰精品| 四虎成人免费毛片| a亚洲天堂| 国产九九精品视频| 高潮爽到爆的喷水女主播视频| 91探花在线观看国产最新| 欧洲欧美人成免费全部视频| 欧美国产日本高清不卡| 国产精品手机在线观看你懂的| 亚洲国语自产一区第二页| 亚洲国产看片基地久久1024| 国产呦视频免费视频在线观看| 91九色国产porny| 国产va在线观看| 久久精品国产电影| 亚洲av综合网| 亚洲国产高清精品线久久| 欧美国产在线一区| 亚洲成人福利网站| 免费毛片全部不收费的| 国产视频一二三区| 国产真实二区一区在线亚洲| 再看日本中文字幕在线观看| 91在线播放国产| 97国产精品视频自在拍| 免费啪啪网址| 996免费视频国产在线播放| 国产欧美日韩18| 中文字幕永久在线看| 国产免费一级精品视频| 高潮毛片免费观看| 国产乱子伦精品视频| 国产亚洲精品va在线| 99在线观看免费视频| 91丨九色丨首页在线播放| 欧美精品1区| 欧美一区二区三区国产精品| 国产在线一区视频| 国产黑丝视频在线观看| 亚州AV秘 一区二区三区| 99热国产这里只有精品无卡顿" | 新SSS无码手机在线观看| 亚洲一区二区三区在线视频| 69综合网| 在线无码av一区二区三区| 久久精品这里只有国产中文精品|