我有一个数据库表,数据比较大,目前达到4000多万条数据,以后还要增加。
目前我要取出 每列的最大值(都是数据类型的),select max(a),max(b),max(d) from test group by  tanso_id,tanso_id  外键,  就是取出tanso_id  对应的每个列的最大值,但是这样速度很慢,有什么好的办法,能提供速度。

解决方案 »

  1.   

    换成分析函数,不知道咋样?
    select max(a)over(partition by tanso_id order by a),
    max(b)over(partition by tanso_id order by b),
    max(d)over(partition by tanso_id order by d)
    from test ;
      

  2.   

    大数据表
    服务器支持并行的话还好取
    加并行度
    select/*+parallel(t,10)*/ max(a),max(b),max(d) from test t group by tanso_id;
      

  3.   

    按照tanso_id列建立partition优化表的存储