美文网首页
oracle索引

oracle索引

作者: 点点渔火 | 来源:发表于2018-07-29 17:18 被阅读0次

    索引

    索引保存置指定条件的ROWID,

    • 表的索引

      • 索引信息

        -- USER_INDEXES

      • 索引列

        -- DBA_IND_COLUMNS

        --ALL_IND_COLUMNS

        --USER_IND_COLUMNS

      • 索引段位置及大小

        -- DBA_IND_EXPRESSIONS

        -- USER_IND_EXPRESSIONS

    • 索引和对应的表放在不同的硬盘的不同表空间能够提高查询速度,Oracle能够并行读取不同硬盘的数据, 避免IO冲突

    • 索引适用:

      • 频繁查询列 索引行数低于总数的15%
      • 频繁排序列
      • 索引加速select,影响insert和delete
      • 指定索引块空间的使用参数PCTFREE, 预留空间
      • 索引和表相同表空间:简化管理; 不同表空间: 提高访问性能
      • 大表建立索引时, 使用NOLOGGING 选项可以最小化重做记录, 降低索引建立时间
      • 小表不要建索引
      • join连接列建立索引
    • B树索引

      默认, 索引数据按升序排列 由根块、分支块和叶块

      create index IDX_EMP(ID)
      pctfree 25
      tablespace users;
      
    • bitmap索引

      当一个列的基数小于1%时, 这些列不再适合建立B树索引, 而适用于bitmap索引

      alter system set create_bitmap_area_size = 8000 000 用于指定建立bitmap时分配的位图区大小, 默认8M, 越大索引建立越快, 重启生效

    • reverse 反向索引

      顺序递增列上建立索引, B树在递增列上的索引(比如主键)会造成数据分布不均匀。反向索引将索引键值反转, 使其非递增, 然后简历B树, 这样B树更加均匀。

      create index IDX_EMP_JOB on emp(job) reverse
      
    • function索引

      create index emp_job_fun
      on emp(lower(job));
      
    • 索引碎片

      重建或合并索引

      alter index emp_index coalesce deallocate unused;

      alter index emp_index rebuild;

      删除:
      drop index emp_index

    相关文章

      网友评论

          本文标题:oracle索引

          本文链接:https://www.haomeiwen.com/subject/jlqtvftx.html