久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQL優(yōu)化之如何使用索引

共計(jì) 2027 個(gè)字符,預(yù)計(jì)需要花費(fèi) 6 分鐘才能閱讀完成。

這篇文章主要介紹 SQL 優(yōu)化之如何使用索引,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

下面  sql 30 秒執(zhí)行出結(jié)果,查看  sql  謂詞中有  like ,我們知道謂詞中有這樣的語(yǔ)句是不走索引的(為了保護(hù)客戶的隱私,表名和部分列已經(jīng)重命名)。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

SELECT /*+1*/

CHECKNUM AS PINGZBSM,

CHECKDATE,

XXXMODE,

XXXRESULT,

(SELECT RESULT 

FROM (select ID,to_char(WMSYS.WM_CONCAT(xxxnum||xxxtype||xxxmode||xxxresult)) RESULT 

 from OOOO_XXXCHECKLOG 

 WHERE CHECKDATE BETWEEN DATE 2018-05-04  AND DATE 2018-05-04  and xxxtype like  %PAR

 GROUP BY ID

 ) b where b.id=a.id

) RESULT,

CLERKNUM AS CHECKNUM

FROM OOO_XXXECHECKLOG A;

邏輯讀 600 多萬(wàn)。查看索引情況如下

表過濾返回?cái)?shù)據(jù)量如下:

1

2

3

4

5

6

SQL  select count(*) from OOOO_XXXCHECKLOG;

2799616

select count(*) from OOOO_XXXCHECKLOG WHERE CHECKDATE BETWEEN DATE 2018-05-04  AND DATE 2018-05-04  and xxxtype like  %PAR ;

 12856

select count(*) from OOOO_XXXCHECKLOG WHERE CHECKDATE BETWEEN DATE 2018-05-04  AND DATE 2018-05-04 ;

197984

通過查詢上面返回?cái)?shù)據(jù)可知,因?yàn)?xxxtype 不走索引,所以通過索引要回表 197984 次,如果走了索引只回表 12856 次。

下面我們建立 REVERSE 索引 IDX_ID_TYPE_RE

1

2

3

4

5

6

7

8

9

10

11

12

13

14

SELECT /*+OOOO_XXXCHECKLOG index(IDX_ID_TYPE_RE) 2*/

CHECKNUM AS PINGZBSM,

CHECKDATE,

XXXMODE,

XXXRESULT,

(SELECT RESULT 

FROM (select ID,to_char(WMSYS.WM_CONCAT(xxxnum||xxxtype||xxxmode||xxxresult)) RESULT 

 from OOOO_XXXCHECKLOG 

 WHERE CHECKDATE BETWEEN DATE 2018-05-04  AND DATE 2018-05-04  and REVERSE(xxxtype) like  RAP%

 GROUP BY ID

 ) b where b.id=a.id

) RESULT,

CLERKNUM AS CHECKNUM

FROM OOO_XXXECHECKLOG A;

查看執(zhí)行計(jì)劃如下,邏輯讀將為 300 萬(wàn),但是時(shí)間還是維持在  18  秒,根本原因在于這個(gè)索引因?yàn)闃?biāo)量子查詢的問題被訪問 700  萬(wàn)次導(dǎo)致。

下面我們改寫 sql 如下

1

2

3

4

5

6

7

8

9

10

11

12

13

SELECT /*+ index(OOOO_XXXCHECKLOG IDX_ID_TYPE_RE) 3*/

CHECKNUM AS PINGZBSM,

CHECKDATE,

XXXMODE,

XXXRESULT,

B.RESULT,

CLERKNUM AS CHECKNUM

FROM OOO_XXXECHECKLOG A

left join (select ID,to_char(WMSYS.WM_CONCAT(xxxnum||xxxtype||xxxmode||xxxresult)) RESULT 

 from OOOO_XXXCHECKLOG 

 WHERE CHECKDATE BETWEEN DATE 2018-05-04  AND DATE 2018-05-04  and REVERSE(xxxtype) like  RAP%

 GROUP BY ID

 ) b on b.id=a.id;

執(zhí)行計(jì)劃中出現(xiàn) index_skip_scan。 

下面我們創(chuàng)建如下索引:

1

create index idx_date_seal_re on OOOO_XXXCHECKLOG(CHECKDATE,REVERSE(xxxtype));

可以看到,邏輯讀降到 64424, 50  個(gè)物理讀是因?yàn)閯倓倓?chuàng)建索引的原因, sql  也秒出。

以上是“SQL 優(yōu)化之如何使用索引”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-24發(fā)表,共計(jì)2027字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 怀柔区| 缙云县| 九江市| 北京市| 陈巴尔虎旗| 江永县| 宣汉县| 桃江县| 四川省| 且末县| 南澳县| 宁国市| 竹山县| 偃师市| 张北县| 濉溪县| 砚山县| 贵州省| 北流市| 青铜峡市| 黑山县| 香港 | 安塞县| 南安市| 樟树市| 额敏县| 宁武县| 荆门市| 佳木斯市| 和田县| 潞城市| 永济市| 泰州市| 新河县| 赣州市| 潼南县| 百色市| 阿合奇县| 中山市| 东乌珠穆沁旗| 盐津县|