oracle中使用索引與不使用索引的性能對(duì)比分析,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)建站是一家專(zhuān)注于成都網(wǎng)站建設(shè)、網(wǎng)站制作與策劃設(shè)計(jì),華龍網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:華龍等地區(qū)。華龍做網(wǎng)站價(jià)格咨詢(xún):028-86922220
前言
Oracle存儲(chǔ)索引的數(shù)據(jù)結(jié)構(gòu)是B*樹(shù)。位圖索引也是如此,僅僅只是是葉子節(jié)點(diǎn)不同B*數(shù)索引;
索引由根節(jié)點(diǎn)、分支節(jié)點(diǎn)和葉子節(jié)點(diǎn)組成。上級(jí)索引塊包括下級(jí)索引塊的索引數(shù)據(jù),葉節(jié)點(diǎn)包括索引數(shù)據(jù)和確定行實(shí)際位置的rowid。
使用索引的目的:
加快查詢(xún)速度
降低I/O操作
消除磁盤(pán)排序
何時(shí)使用索引:
查詢(xún)返回的記錄數(shù)
排序表<40%
非排序表 <7%
表的碎片較多(頻繁添加、刪除)
索引的種類(lèi)
非唯一索引(最經(jīng)常使用)
唯一索引
位圖索引
局部有前綴分區(qū)索引
局部無(wú)前綴分區(qū)索引
全局有前綴分區(qū)索引
散列分區(qū)索引
基于函數(shù)的索引
oracle使用索引與不使用的性能
首先準(zhǔn)備一張百萬(wàn)條數(shù)據(jù)的表,這樣分析數(shù)據(jù)差距更形象!
下面用分頁(yè)表數(shù)據(jù)對(duì)表進(jìn)行分析,根據(jù)EMP_ID 字段排序,使用索引和不使用索引性能差距!
sql查詢(xún)語(yǔ)法準(zhǔn)備,具體業(yè)務(wù)根據(jù)具體表書(shū)寫(xiě)sql語(yǔ)法:
SELECT * FROM (SELECT ROW_.*, ROWNUM ROWNUM_ FROM (SELECT * FROM KQS_SQ_INFO i ORDER BY i.EMP_ID desc ) ROW_ WHERE ROWNUM <= 20) WHERE ROWNUM_ >= 10;
使用 explain plan for
可以分析sql
如下:
explain plan for SELECT * FROM (SELECT ROW_.*, ROWNUM ROWNUM_ FROM (SELECT * FROM KQS_SQ_INFO i ORDER BY i.EMP_ID desc ) ROW_ WHERE ROWNUM <= 20) WHERE ROWNUM_ >= 10;
計(jì)算出SQL性能,使用
select * from TABLE(dbms_xplan.display);打印出性能分析表
如下圖:
使用索引前:
關(guān)于oracle中使用索引與不使用索引的性能對(duì)比分析問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。