日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle模糊查询很慢,采用全文索引解决模糊查询速度慢的问题

發布時間:2025/3/12 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle模糊查询很慢,采用全文索引解决模糊查询速度慢的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

眾所周知,使用 like 進行模糊查詢速度極差,包括 like 'AAA%' ,like '%AAA',like '%AAA%',like '%A%A%'以及采用“_”進行單字符匹配的那些模糊查詢。網上有很多文章講到如何提高like查詢,提到 like 'AAA%'能夠使用到索引,而like '%AAA' ,使用創建反向函數的索引來提高查詢效率。但一般情況下,是無法約定客戶端采用哪種like查詢,難道說把所有的這些情況都進行if判斷嗎?

為這個事情腦袋疼了無數次。最近,一客戶“無理”要求對用戶地址模糊查詢速度太慢。在數十萬的用戶記錄下查詢,要求5秒之內必須查詢到記錄。

想破腦袋還是找不到方法。有同事找了本Lucene的書給我看,說是能解決。翻來覆去的看了2,3遍,始終想不出這玩意兒怎么用。

突然想到oracle也有全文索引一說,以前只是別人提起過這個詞。與網上朋友一聊,說是似乎可以解決,但他忘了怎么用了。

半夜12點,趕緊爬起來,到google上查資料。還真有兩下子,研究了幾個小時,有所獲。第二天白天沒時間研究,晚上繼續,最終把全文索引搞定,解決了模糊查詢速度慢的問題,在數十萬條用戶數據中, 對用戶地址進行模糊查詢速度在2秒以內就能夠查到。

-------------------------------------------------------------------------

以下是創建全文索引的方法(網上有文章提到使用圖形化界面,我用圖形化界面創建全文索引,創建了一個晚上,第二天起床居然還沒完。但用SQL命令15分鐘左右就搞定):

對cmng_custominfo 表中的address字段做全文檢索:

1,在oracle9201中需要創建一個分詞的東西:

BEGIN

ctx_ddl.create_preference ('SMS_ADDRESS_LEXER', 'CHINESE_LEXER');

--ctx_ddl.create_preference ('my_lexer', 'chinese_vgram_lexer'); 不用

end;

2,創建全文檢索:

CREATE INDEX INX_CUSTOMINFO_ADDR_DOCS ON cmng_custominfo(address) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS ('LEXER SMS_ADDRESS_LEXER');

3,查詢時候,使用:

select * from cmng_custominfo where contains (address, '金色新城')>1;

4,需要定期進行同步和優化:

同步:根據新增記錄的文本內容更新全文搜索的索引。

begin

ctx_ddl.sync_index('INX_CUSTOMINFO_ADDR_DOCS');

end;

優化:根據被刪除記錄清除全文搜索索引中的垃圾

begin

ctx_ddl.optimize_index('INX_CUSTOMINFO_ADDR_DOCS', 'FAST');

end;

5,采用job做步驟4中的工作:

1)該功能需要利用oracle的JOB功能來完成

因為oracle9I默認不啟用JOB功能,所以首先需要增加ORACLE數據庫實例的JOB配置參數:

job_queue_processes=5

重新啟動oracle數據庫服務和listener服務。

2)同步 和 優化

--同步 sync:

variable jobno number;

BEGIN

DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.sync_index(''INX_CUSTOMINFO_ADDR_DOCS'');', SYSDATE, 'SYSDATE + (1/24/4)');

commit;

END;

--優化

variable jobno number;

begin

DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.optimize_index(''INX_CUSTOMINFO_ADDR_DOCS'',''FULL'');', SYSDATE, 'SYSDATE + 1');

commit;

END;

其中, 第一個job的SYSDATE + (1/24/4)是指每隔15分鐘同步一次,第二個job的SYSDATE + 1是每隔1天做一次全優化。具體的時間間隔,可以根據應用的需要而定

6,索引重建

重建索引會刪除原來的索引,重新生成索引,需要較長的時間。

重建索引語法如下:

ALTER INDEX INX_CUSTOMINFO_ADDR_DOCS REBUILD;

據網上一些用家的體會,oracle重建索引的速度也是比較快的,有一用家這樣描述:

Oracle 的全文檢索建立和維護索引要比ms sql server都要快得多,筆者的65萬記錄的一個表建立索引只需要20分鐘,同步一次只需要1分鐘。

因此,也可以考慮用job的辦法定期重建索引。

[@more@]

總結

以上是生活随笔為你收集整理的oracle模糊查询很慢,采用全文索引解决模糊查询速度慢的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线香蕉视频 | 欧美草逼网 | 小泽玛利亚一区二区三区视频 | 国产精品自拍视频 | 北条麻妃久久精品 | 亚洲区小说区图片区 | 蜜臀久久99精品久久久 | 狂野欧美性猛交xxxx | 姐姐你真棒插曲快来救救我电影 | 亚洲24p | 日韩一区二区在线看 | 黄色av片三级三级三级免费看 | 蜜桃视频在线观看一区二区 | 国产精品视频一区二区三区在3 | 高潮一区二区三区乱码 | 欧美一区二区三区黄色 | 国产色91 | 美女极度色诱图片www视频 | 精品一区二区久久久 | 一级黄色免费 | 国产成人黄色片 | 中文字幕亚洲无线码在线一区 | 57pao国产成永久免费视频 | 福利影院在线观看 | 播播激情网 | 久久精品免费网站 | 免费超碰在线观看 | 精品国产乱码久久久久久蜜臀 | 欧美在线色 | 午夜黄色网址 | 男人和女人搞鸡 | 国产精品永久 | 日韩在线视频免费观看 | 福利视频一区 | 欧美日韩国产免费 | 国产精品综合在线 | 久久九九国产视频 | 亚洲欧美在线一区二区 | 一卡二卡三卡在线观看 | 最近最新最好看的2019 | 欧美亚州| 亚洲精品成人在线视频 | 成人免费毛片视频 | √天堂8资源中文在线 | 久久黄色av | 成人日b视频 | 成人午夜激情网 | 欧美视频三区 | 国产美女精品一区二区三区 | 国产男人搡女人免费视频 | 亚洲中文字幕无码av | 国产猛男猛女超爽免费视频 | 日本亚洲视频 | 91视频在线网站 | 在线免费观看视频你懂的 | 中文字幕影片免费在线观看 | 人人爽人人爽人人爽 | 少妇av一区 | 国产精品尤物视频 | 福利视频一区二区 | 午夜av一区| 韩国明星乱淫(高h)小说 | 娇妻被老王脔到高潮失禁视频 | 极品色综合 | 久久久久久久久久国产精品 | 99热首页 | a级一级黄色片 | 麻豆av电影在线 | 欧美一区二区精品 | 美国一级大黄一片免费中文 | 亚洲8888| 亚洲免费中文字幕 | 国产精品一区网站 | 国产亚洲综合在线 | 成人免费看类便视频 | 神马午夜av | 尤物91| 色噜噜狠狠一区二区 | 国产嗷嗷叫 | 亚洲欧美日本在线 | 国产麻豆精品久久一二三 | 久久露脸国语精品国产91 | 国产精品乱码一区二区 | 美女靠逼视频网站 | 日韩中文字幕 | 国产美女免费观看 | 国产激情网站 | 强伦人妻一区二区三区视频18 | 久久久久在线观看 | 成年人在线视频网站 | 午夜寂寞影院在线观看 | 婷婷av一区二区三区 | 久久人体| 国产尤物视频在线观看 | 91麻豆精品国产午夜天堂 | 捆绑黑丝美女 | 蜜桃精品在线 | www.成年人 | 打屁股视频网站 |