• oracle 基于索引优化


    1、user_ind_statistics表:索引统计信息表

      Oracle中有三种类型的对象统计信息:表统计、列统计和索引统计。而在每种类型中,有细分为:表或索引级别的统计、分区级别统计和子分区级别的统计,后面两种只有在对象被分区和具有子分区的情况下才可用。

      user_ind_statistics的blevel字段为0表示索引仅有叶子块,高度为1 。高度低有利于索引范围扫描

    2、索引可优化count,sum,avg,切记不存储null,一可以设置该列为非空,也可以把sql改成:select count(*) from t where object_id is not null 。当然主键就无须定义列是否允许为空了。

    3、索引可优化排序。新增索引后, Oracle 就有可能利用索可本身就有序的特点来避免排序。

    4、组合索引的选择:

      适合单列查询返回多,组合查询返回少的场景。

      组合查询的组合顺序,要考虑单独的前缀查询。

      仅等值无范围查询时,组合的顺序不影响性能。

      组合索引最佳顺序一般是将等值查询的列置前。

      组合索引一般不宜过多,如果组合索引列达到4个以上 ,那这个索引本身就很大, 就不一定高效。另外更新也会出现比较大的性能问题。

    5、索引扫描类型的分类与构造

      index range scan            (select * f rorn t where object_id =8;)

      index unique scan          (create unique index)

      index full scan           (select * f rorn t order by object_id ;)

      index fast full scan(min/max)       (select max(object_id) from t5)

      index skip scan         

     6、同时取最大值和最小值的改法

      select max(object_id) , min(object_id) from t5;

      select max, min from (select max(object_id) max from t5 ) a , (select min(object_id) min from t5 ) b;

    7、索引失效的原因:

      索引逻辑失效:索引返回大量数据,不如用全表扫描。

             发生索引列的类型转换。

                对索引进行各种运算。

       物理索引失效:(查看方式:select distinct status from user_indexes)

              long 列调整导致索引失效

              move 操作会导致索引失效

              分区表导致索引失效的操作(增加 update gl obal indexes ,全局索引不会失效。) drop,split,exchange都会导致索引失效 

              add分区不会导致索引失效

    8、查看系统从为用到过的索引:

        create index idx_object_id on t5(object_type);

        alter index idx_object_id monitoring usage;//打开监控

        select count(*) from t5 where object_type='YHQTEST' select * from v$object_usage ;

        alter index idx_object_id nomonitoring usage ;//关闭监控

              

                 

    end:1疑难杂症:

     

    end2、索引的相关hint用法:

      select /*+index(t,idx_id_type)*/   * from t       //使用t表的idx_id_type索引。

      

  • 相关阅读:
    Vue多页面 按钮级别权限控制 directive指令控制
    Vue下载页面显示内容
    golang中数组指针和指针数组的区别
    mqtt mosquitto 源码安装
    【后台管理系统】—— Ant Design Pro结合插件(一)
    【后台管理系统】—— Ant Design Pro页面相关(二)
    【后台管理系统】—— Ant Design Pro页面相关(一)
    【后台管理系统】—— Ant Design Pro组件使用(二)
    【后台管理系统】—— Ant Design Pro组件使用(一)
    【千纸诗书】—— PHP/MySQL二手书网站后台开发之知识点记录
  • 原文地址:https://www.cnblogs.com/yaohuiqin/p/11655821.html
Copyright © 2020-2023  润新知