数据库有很多表,表和表之间使用主键进行关联,上层系统要求能够查询返回由不同表的任意字段组合成的查询结果。表大概如下:总表 ZT 字段  ID,FZ1,FZ2, FZ3 .. FZN。  其中ID为主键表T1 字段 ID(ZT的ID),  T1ID,F11,F12,F13....F1N
表T2 字段 ID(T1的T1ID),T2ID,F21,F22,F23....F2N
表T3 字段 ID(T2的T2ID),T3ID,F31,F32,F33....F3N
表T4 字段 ID(ZT的ID),  T4ID,F41,F42,F43....F4N
表T5 字段 ID(T4的T4ID),T5ID,F51,F52,F53....F5N
。表的树形结构如下:
       ZT
    T4    T1
 T5          T2
                T3       父表与子表有一对一,一对多的关系。现在就想给定ZT的某个条件,然后任意选择T1到T5的字段进行组合,如查询结果为
FZ1,F11,F21,F31,F41,F51,F53之前是采用手工将要的查询结果使用视图的方式先创建好视图。单由于有些表过大,有上百万条记录,而且经常是好几个表进行关联查询,查询时间特长,满足不了使用需求。我想知道,能否还有其他方法能够满足任意字段组合,并且速度还要快,如果SQL实现不了,需要前端程序再处理也可以。谢!

解决方案 »

  1.   

    怎么搞的,树型结构变了表的树形结构如下:
          ZT
      T4     T1
     T5           T2
                        T3   
    重新调整一下。
      

  2.   

    调整不好了。用文字说吧。左边是 ZT,T4,T5
    右边是 ZT,T1,T2,T3
      

  3.   

    你的问题是速度慢,
    1:优化视图的SQL语句
    2:用物化视图
    3:定时执行
      

  4.   

    执行速度慢的问题:
    与你的sql语句有关系
    具体看一下执行计划了。