首先对编号设立为主键
其次对你所需要统计的、所需要查询的用到的常用字段(如姓名、出生日期等)加上索引。 
其次对各张从表中的编号也设为主键,同样也设为外键。反正索引建立是个大概念,需要根据你所建立的SQL和PLSQL语句进行索引的建立,并且需定期对索引进行分析等。

解决方案 »

  1.   

    你的系统别人只是给你提建议.比如说是什么样的系统?olap还是oltp?所以这个你还是要看看索引的使用来入手会好一些.
      

  2.   

    建立索引不是个小问题,建不好反而会严重降低系统效率.而且系统现在是正在使用中的,可不能自己乱作实验,关于索引的使用我也看了不少贴子和书,但实际要做时总觉得大脑一片混乱.所以才请各位高人出手相助.我的个人理解:
    1.建立主键,外键.
    2.建立一个包含姓名,编号索引.
    3.建立一个统计时需要的索引.
    4.建立一个复杂组合查询时使用的索引.
    请各位指点.还有个问题:
        组合查询时,SQL语句是动态构造的,例如:用户输入了三个条件Where语句就三个条件,用户输入40个条件,Where语句就包含40个字段的条件.根据我参考以前的老贴子上说的Where后的第一个字段要在索引的最前面,这个无法办到啊?
      

  3.   

    "Where后的第一个字段要在索引的最前面",没这样的要求。但复合索引的第一个字段必须在where的条件中,否则索引不会被使用。
      

  4.   

    编号做主键
    姓名等常见字段创建索引;后边复杂查询的语句 
    需要使用STATSPACK来监测数据库性能 
    跟踪一些问题语句,分析其执行计划 才有优化的思路
      

  5.   

    我的观点就是索引在有查询需要时再建,对于你那个“一个按多条件的组合查询,条件数包括主表和从表的字段,可能超过80个以上的字段”...  估计传统的索引不是最佳的解决途经,可以根据具体的应用程序,适当的改变表结构,把常常用在一起组合查询用的不同表的字段放在一张表内减少连接消耗,经常统计的查询可以做成物化视图定时刷新,还有就是借鉴“老汤”的《oracle专家高级编程》中的一个模糊查询的解决方案,那个思路太棒了....