成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

oracle怎么查詢快 oracle查詢時快時慢

如何提高oracle模糊查詢的性能?

1、使用兩邊加‘%’號的查詢,Oracle是不通過索引的,所以查詢效率很低。

創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計,有關(guān)成都企業(yè)網(wǎng)站建設(shè)方案、改版、費用等問題,行業(yè)涉及成都銅雕雕塑等多個領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

例如:select count(*) from lui_user_base t where t.user_name like '%cs%';

2、like '...%'和 like'%...'雖然走了索引,但是效率依然很低。

3、有人說使用如下sql,他的效率提高了10倍,但是數(shù)據(jù)量小的時候

select count(*) from lui_user_base where rowid in (select rowid from lui_user_base t where t.user_name like '%cs%')

我拿100w跳數(shù)據(jù)做了測試,效果一般,依然很慢,原因:

select rowid from lui_user_base t where t.user_name like '%cs%' ? 這條sql執(zhí)行很快,那是相當(dāng)?shù)目欤欠诺絪elect count(*) from lui_user_base where rowid in()里后,效率就會變的很慢了。

4、select count(*) from lui_user_base t where instr(t.user_name,'cs') 0

這種查詢效果很好,速度很快,推薦使用這種。因為我對oracle內(nèi)部機制不是很懂,只是對結(jié)果做了一個說明。

5、有人說了用全文索引,我看了,步驟挺麻煩,但是是個不錯的方法,留著備用:

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

1,在oracle9201中需要創(chuàng)建一個分詞的東西:

BEGIN

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

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

end;

2,創(chuàng)建全文檢索:

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,需要定期進(jìn)行同步和優(yōu)化:

同步:根據(jù)新增記錄的文本內(nèi)容更新全文搜索的索引。

begin

ctx_ddl.sync_index('INX_CUSTOMINFO_ADDR_DOCS');

end;

優(yōu)化:根據(jù)被刪除記錄清除全文搜索索引中的垃圾

begin

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

end;

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

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

因為oracle9I默認(rèn)不啟用JOB功能,所以首先需要增加ORACLE數(shù)據(jù)庫實例的JOB配置參數(shù):

job_queue_processes=5

重新啟動oracle數(shù)據(jù)庫服務(wù)和listener服務(wù)。

2)同步 和 優(yōu)化

--同步 sync:

variable jobno number;

BEGIN

DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.sync_index(''INX_CUSTOMINFO_ADDR_DOCS'');',

SYSDATE, 'SYSDATE + (1/24/4)');

commit;

END;

--優(yōu)化

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天做一次全優(yōu)化。具體的時間間隔,可以根據(jù)應(yīng)用的需要而定。

6,索引重建

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

重建索引語法如下:

ALTER INDEX INX_CUSTOMINFO_ADDR_DOCS REBUILD;

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

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

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

ORACLE 快速查詢數(shù)據(jù)SQL語句

單條匹配,沒有索引也不準(zhǔn)備建索引。只能靠并發(fā)來加快檢索速度,最快的語句應(yīng)該是:select /*+ full(A) parallel(A,10) */ * from A where b=c;理由有2:full table scan 時,oracle會一次讀出多個block加快速度parallel指定并發(fā)10線程檢索,當(dāng)然如果允許,你指定20也可以。最好等于CPU個數(shù)。 不過還是建議在b列上建索引,這是最好的辦法。

如何提升oracle大表查詢的效率???

1、建索引。

2、減少表之間的關(guān)聯(lián);

3、優(yōu)化sql

,盡量讓SQL很快的定位,不要走全表查詢,盡量走索引

4、簡化查詢的字段。

希望對你有用。

如何提高oracle的查詢速度

使用索引,使用精確定位條件篩選,使用子查詢將數(shù)據(jù)量大的表篩選再進(jìn)行多表連接查詢,少使用模糊查詢,注意條件的順序等

新聞標(biāo)題:oracle怎么查詢快 oracle查詢時快時慢
本文鏈接:http://jinyejixie.com/article32/hpdhpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、服務(wù)器托管面包屑導(dǎo)航、網(wǎng)站策劃、定制網(wǎng)站移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
丰原市| 民和| 鄂托克旗| 通山县| 朝阳市| 蚌埠市| 东乡县| 云浮市| 惠东县| 万宁市| 盐源县| 曲阜市| 福安市| 石嘴山市| 沙田区| 阜阳市| 明星| 乐安县| 黑水县| 新平| 岱山县| 沙湾县| 九江县| 南召县| 冀州市| 兖州市| 张掖市| 和静县| 连南| 普宁市| 大竹县| 高要市| 来宾市| 札达县| 茶陵县| 监利县| 芜湖县| 四子王旗| 馆陶县| 迭部县| 郸城县|