欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

oracle使用索引與不使用索引的性能詳析

 更新時(shí)間:2018年10月12日 09:55:26   作者:石海斌  
索引是建立在表的一列或多個(gè)列上的輔助對(duì)象,目的是加快訪問(wèn)表中的數(shù)據(jù),下面這篇文章主要給大家分析介紹了關(guān)于oracle使用索引與不使用索引的性能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

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。

使用索引的目的:

  • 加快查詢速度
  • 降低I/O操作
  • 消除磁盤(pán)排序

何時(shí)使用索引:

  • 查詢返回的記錄數(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查詢語(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);打印出性能分析表

如下圖:

使用索引前:

使用索引后

可以清晰看到使用后cpu使用率很低,并且檢索是從索引開(kāi)始而不是全文檢索

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論