数据库中按月记录了企业的相关的财务报表,客户查询的时候
需要查询相关指标的一些衍生指标,例如从年初到查询月份的累积值,一些比率值(可能涉及财务指标的当月的值、上月的值、累积值等)
为了保证效率
现在采用得方法是,提前将这些累积值、比率值等衍生指标计算出来存入数据库中
但是这样涉及到如果历史数据更新那样这些衍生指标就是错误的
如果直接在用户查看报表时查询汇总生成这些衍生指标,又有效率问题
请大家发表一下意见,提供些解决方案
如果直接查询生成指标有什么好的方法,保证效率?谢谢!

解决方案 »

  1.   

    几千万倒是没有
    不过因为报表的指标很多,衍生指标就算有的也很复杂,这样可能会造成sql语句非常复杂
    物化视图倒是有这个概念,但是具体怎么回事还不是太清楚,回头仔细看一下
    欢迎大家继续讨论!
      

  2.   

    物化视图 在8.1.5版就开始支持,是可以定时刷新数据的视图
    但如果历史数据并不频繁更新,使用触发器更节省系统资源物化视图对于前台数据库使用者来说如同一个实际的表,具有和表相通的一般select操作,而其实际上是一个视图,一个定期刷新数据的视图(具体刷新时间在定义物化视图的时候已有定义),使用物化视图可以实现视图的所有功能,而物化视图却不是在使用时才读取,大大提高了读取速度,特别适用抽取大数据量表某些信息以及数据链连接表使用.具体语法如下:
    CREATE MATERIALIZED VIEW an_user_base_file_no_charge
                 REFRESH COMPLETE START WITH SYSDATE  
                NEXT  TRUNC(SYSDATE+29)+5.5/24
       as
    select distinct user_no
      from cw_arrearage t
     where (t.mon = dbms_tianjin.getLastMonth or
           t.mon = add_months(dbms_tianjin.getLastMonth, -1))