在MS SQL 中,铁人(SQL 2005性能调优)建议我们一般的表最好都要有聚集索引,就是ORACLE 的IOT表,
在ORACLE 中,TOM教导我们一般的表99%最好都是堆表(heap table).
(摘自Expert_Oracle_Database_Architecture_Oracle_Database_Programming_9i_10g_and_11g_Techniques_and_Solutions
--PAGE 324)这是为什么呢? 希望各位牛人解惑.
个人倾向于 是表最好都是聚集索引表(IOT)表,更加合适.当然这也不是绝对.难道ORACLE OLTP的应用场景都是只查单条记录?都不需要顺序读取?

解决方案 »

  1.   

    ORACLE不懂,但ORACLE中的表也基本都是有主键的吧,你看的摘要会不会理解意思理解错了
      

  2.   

    mysql的innodb更折中  没有主键的会找个非空的唯一索引当主键  如果没有 则自动生成一列
      

  3.   

    MS SQL索引都是二叉树结构的,不管是聚集跟非聚集索引.Oracle索引除了有二叉树结构外,还有位图索引(Bitmap).
    二种索引针对的情况不同,位图索引(Bitmap)可用于大量重复的字段上.
      

  4.   


    在SQL 2008 也已经引进位图索引,筛选索引等,不过还是没有HASH 索引 等东东.
    你讨论的那个跟我说的那个不是一回事
      

  5.   

    从ORACLE板块那边得到第一个消息大概是:由于ORACLE 的IOT表,必须是按主键排序的,也就是说 MS SQL 聚集键的选择范围更广些.难道这是MS SQL 领先的地方?当然了,ORACLE 出了堆表,聚集表以外,还有几种其它类型的表.