Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引

SQL>  select * from t1 where a<600 ;

已选择599行。

已用时间:  00: 00: 00.03

执行计划

———————————————————-

Plan hash value: 2474755989

—————————————————————————

| Id  | Operation        | Name   | Rows  | Bytes | Cost (%CPU)| Time     |

—————————————————————————

|   0 | SELECT STATEMENT |        |   593 |  1779 |     3   (0)| 00:00:01 |

|*  1 |  INDEX RANGE SCAN| T1_IND |   593 |  1779 |     3   (0)| 00:00:01 |

—————————————————————————

Predicate Information (identified by operation id):

—————————————————

1 – access(“A”<600)

计算所用公式

INDEX

cost = blevel +ceiling(leaf_blocks * effective index selectivity) +ceiling(clustering_factor * effective table selectivity)

SQL> execute dbms_stats.gather_table_stats(‘ZENGMUANSHA’,’T1′);

SQL> select column_name,NUM_NULLS,NUM_DISTINCT,density from user_tab_col_statistics where table_name=’T1′;

COLUMN_NAMENUM_NULLS NUM_DISTINCT    DENSITY  LOW_VALUE    HIGH_VALUE

—————————— ———- ———— ———-————

A                 0         9926 0.00010074   C104C302

SQL> select LEAF_BLOCKS,BLEVEL ,clustering_factor from user_indexes where index_name=’T1_IND’;

LEAF_BLOCKSBLEVEL CLUSTERING_FACTOR

———– ———- —————–

21          1                16

先套下公式看看

COST=1+CEIL(21*EFFECTIVE INDEX SELECTIVITY)+CEIL(16*EFFECTIVE TABLE SELECTIVITY)

有效表选择率和有效索引选择率 是指能定位索引和表的谓词.

这里只有一个谓词 a<600 并且它是表和索引的定位的谓词.

关于谓词区间的选择率计算

公式=需要空间除以可用空间

可用空间=high_vlaue-low_value=12-1=11

需要空间=(high_vlaue-limit) 或(limit-low_value)或(high_vlaue-low_value)

1 month_no>8 (high_vlaue-limit)/(high_vlaue-low_value)=(12-8)/11=4/11

A<600 =>(limit- low_value)/(high_vlaue-low_value)

=>(limit- low_value)/(high_vlaue-low_value)

=>(600-C104)/(C302-C104)

不知道如何算还是采用下面的吧!

SQL> SELECT MAX(A),MIN(A) FROM T1;

MAX(A)     MIN(A)

———- ———-

10000          1

=>(600-1)/(10000-1) =0.059905990599059905990599059905991

COST=1+CEIL(21*EFFECTIVE INDEX SELECTIVITY)+CEIL(16*EFFECTIVE TABLE SELECTIVITY)

=1+CEIL(21*0.05990)+CEIL(16*0.05990)

=1+ceil(1.2579)+ceil(0.9584)

=1+1+1

=3

oracle执行计划cost单位,Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引相关推荐

  1. oracle通过执行计划cost,Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引

    Oracle 执行计划(5)-cost成本之索引范围扫描-B树索引 SQL>  select * from t1 where a<600 ; 已选择599行. 已用时间:  00: 00: ...

  2. Oracle索引梳理系列(二)- Oracle索引种类及B树索引

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  3. oracle执行计划time单位,Oracle中查看执行计划

    方法一.通过使用工具PLSQL Developer中的Explain Plan Window窗口查看SQL执行计划.具体参考 方法二.通过SQL*PLUS中的autotrace命令查看 1.登录拥有d ...

  4. oracle物料属性主要单位,Oracle EBS物料属性设定.doc

    Oracle EBS物料属性设定 Oracle EBS: 物料的属性设定概要物料是整个ERP的根基,几乎所有的业务操作都是围着物料转的.而Oracle EBS中的物料属性有近280个属性,要一个一个去 ...

  5. Oracle数据库解决NULL值不走B树索引

    B树索引我们可以把它看成是书的目录,在这个目录中主要记录的是索引所对应的表列的值和这个值所对应的ROWID.在通常情况下,我们在表中增加索引的目的是增加表的查询性能,但是有几种情况,即使你在表中加入了 ...

  6. oracle cost cardinality,ORACLE 执行计划中cost cardinality bytes cpu_cost io_cost解释

    从网上找到的资料,加上我在文档中查到的内容: ■ Cost The cost assigned to each step of the query plan by the CBO. The CBO w ...

  7. Oracle学习笔记(三)----------执行计划

    查看Oracle执行计划的几种方法 一.通过PL/SQL Dev工具 1.直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果.其中,Cos ...

  8. mysql 导入百万级数据 几种 java_Java 修行第034天--执行计划及其使用--Oracle数据导入导出--第三章MySQL使用...

    执行计划中牢记几句话: -- 尽量避免是*代替所有列,编写查询语句时使用具体列名代替*,可以防止全表扫描 -- 尽可能少的使用like关键字进行模糊查询 -- 建立适当的索引可以提高查询效率 十三. ...

  9. 懒人看执行计划神器 for Oracle

    原文链接:https://www.modb.pro/db/23252?cyn (阅读原文,支持作者) 摘要:oracle小工具 如果一个sql执行计划几十甚至上百行怎么看?本文介绍一个偷懒工具xpla ...

最新文章

  1. es6与java的相似度,特斯拉Model Y对比蔚来ES6!这次对比结果出乎意料
  2. 如何使用Notepad++格式化XML文件
  3. 凝聚式层次聚类 java_凝聚法层次聚类之ward linkage method
  4. linux使用rename批量修改文件扩展名
  5. D3 interpolate
  6. Android之eclipse简单NDK入门
  7. Azure China (5) 管理Azure China Powershell
  8. 一个简单的Python调度器
  9. C# 控制台如何播放音频文件
  10. LCD屏的驱动芯片注意事项
  11. 数据库中的二维表—巧借Excel
  12. 花花公子 243线SLOT
  13. F. Elongated Matrix
  14. M40Z-025003TB0西克光电开关 订货号: 1200128
  15. Nvme驱动补丁 解决Usb3.0/3.1驱动和磁盘控制器WIN7蓝屏方案
  16. 侯捷先生的Design Patterns高级课程
  17. 网络安全管理员_三级_操作技能考核解题过程(1)
  18. 疫情无情,人间有爱,百迈客免费赠送1000个微生物云分析账号
  19. 一文讲解DNG、TIFF、PSD等区别和用法
  20. 商业银行纷纷发力聚合支付:进行费率补贴 即时生成收款码

热门文章

  1. 如何将 hadoop1.1.2/1.2.1 源码关联到 Eclipse
  2. #绘制圆心_AutoCAD绘制齿轮教程
  3. python numba_如何用numba加速python?
  4. springboot 控制台输出错误信息_SpringBoot 三招组合拳,手把手教你打出优雅的后端接口...
  5. 行编辑器c语言,行编辑器——C语言.doc
  6. android studio创建9.patch图片,使用时出现Error: Duplicate resources
  7. python怎么读是什么意思-python中的PEP是什么?怎么理解?(转)
  8. python和java哪个好-Python和Java发展前景哪个好?Python开发学习
  9. 指纹、面部、语音识别技术,破解真的很简单!| 知乎
  10. [转]Kaldi语音识别