zoukankan      html  css  js  c++  java
  • oracle11g的分区(range、list)索引测试

    背景:oracle11g RAC4台机器,有2个表上亿数据使用了年度(year)的range分区发现结果不理想,我印象中选中分区字段能够去掉相当一部分数据,效率也应该高,发现不是这样的,于是各种测试,

    现象发现:其中一个表跟网上说的相符合,用的range分区,分区字段也没有建立索引,但是走分区表,走已有的索引字段,这个就不写了,记录一下另外一个表跟网上不一致的情况

    SELECT count(*) FROM inspect p where p.code= '11111' and p.year = 2019;

    1、分区是用range(year)的情况

      1.1给code加上索引(本地和全局一样):执行计划不走索引,不走分区,为全表扫描

      1.2给year和code加上联合索引:测试环境不走索引,不走分区,为全表扫描;生产环境走- -!

    2、分区是list(year)的情况

      2.1给code加上索引(本地和全局差不多):走分区,走code索引;

      2.2给year和code加上联合索引:走分区,走联合索引;

      2.3总结2.1和2.2的效率一样,只是执行计划的基数2.1稍大而已,不影响效率,都是0.013s左右

    3、由于本表查询的条件相对比较多,因此有测试了一下其它字段单个索引和联合索引的影响(基于list分区的),比如code,name分别建立索引,在联合建立一个索引,总结如下

      3.1单个索引(0.017s)比联合索引(0.013s)慢0.004s,性能高23%

      3.2单独查询code索引和查询以code开头的联合索引速度基本一致,这个时候建立联合索引比较划算

  • 相关阅读:
    SQL Challenges靶机
    XSS靶机1
    djinn靶机
    Sunset靶机
    统计学 一 集中趋势
    测试
    测试
    统计学 一 集中趋势
    算法分析
    代码测试
  • 原文地址:https://www.cnblogs.com/aishangyizhihu/p/13441776.html
Copyright © 2011-2022 走看看