创建索引index

来源:互联网 发布:网络怎么赚钱? 编辑:程序博客网 时间:2024/04/29 11:04

创建索引:

create bitmap index rdom_index on extra_work(extra_work_name) ; -创建位图索引时    很可能会出现错误        解决方案是  加local   create bitmap index rdom_index on extra_work(extra_work_name) local ;


     create index index_hire on scott.emp(char(hiredate,'yyyy-mmdd'));   -- 该索引可以提高查询速度                     select * from scott.emp wherechar(hiredate,'yyyy-mm-dd')>'20002-5-1' 


删除索引

drop index index_name

重建索引

alter index index_name rebuild;


索引的主要作用就是提高数据表的查询速度。

好处: 

  • 可以保证每行数据的唯一性,可以加速检索数据的速度;
  • 多表查询时,可以加速表之间的连接;
  • 明显减少分组和排序的时间;

不足:

     创建和维护索引需要消耗额外的时间和空间,对表中的数据进行dml操作时,也需要动态的维护索引,降低了处理数据的速度。

适合创建索引的字段

  • 取值范围较大的字段 nul 值比较多的字段,经常作为查询或连接条件字段 ,经常需要排序的字段
  • 把经常作为查询条件的字段设置为索引,这样可以提高数据的查询速度,从而提高网站的打开速度

不适合建立索引的表和字段具备的特征:

  • 较小的表
  • 经常更新的表
  • 不常做为查询条件或者连接条件的字段

索引的类型

    B树索引:

    反向键索引,

    基于函数的索引

如果索引是依据表的原始字段值建立的,那么基于函数的搜索是不上索引的。Oracle将被迫进行全表搜索,从而降低了效率。 

全局索引

局部索引

应用索引

   Oracle 中的索引的应用是由优化器决定的。优化器根据优化的结果自动选择合适的索引来使用。

   Oracle对查询语句的执行过程:

         1、解析代码:  

         2、优化代码:找到执行用户查询的最佳路径,两种优化器,一种是基于规则的优化器,RBO(Rule BasedOptimiszer)一种是基于开销的优化器CBO(CostbasedOptimizer)              

         3、生成代码和执行代码