如果你觉得你很了解索引和视图了,那么就来一起探讨下吧!
1.索引的本质是什么?发生索引的时候内部是怎样查找数据的?
2.具体说明什么情况下适合建立索引,什么情况下不适合?
3.索引的优点和缺点4.为什么要建立视图?
5.建立视图的优点和缺点?最好举例说说,大家一起谈论!光说概念性的没有意义!
我想这些看似简单的问题其实值得大家一起探讨!

解决方案 »

  1.   

    自己顶了.我也说说我的理解!
    建立索引就是为了便于select查询,但是索引是牺牲了执行时间而换取查询时间的!所以说找到建立索引的平衡点很关键,不过这个平衡点怎么找就有艺术了,具体艺术在哪里希望高手指教!
      

  2.   

    楼主应该给点分,这样估计回答这个问题的人就多了索引:如果查询只返回少于4%的行,就需要使用索引,打个比方select * from test_table where test_id = 2303;假如给定test_id返回的行比例少于4%,那么就应该在test_id上实现索引
    对不同的oracle版本,建索引规则是不一样的,对于8i到10g,4%基本就可以了,11g没用过,估计应该<4%吧
    还有就是索引不是建了就一定会使用,有很多原因可以导致索引不会被使用,比如说你建的是B树索引在test_id列,那么下边的select * from test_table where TO_CHAR(test_id) = '2303';就不会使用索引,一般函数如trunc,substr,to_date,to_char,instr等只要是能改变列的值,都会忽略掉索引,除非你建了基于该函数的索引.