数据库中的A表存放一千万多条记录,且表相关字段已建立索引,表中存放的是以天为单位的销售流水数据。现在A表、B表和C表进行联合查询,汇总显示某个时间段内的销售总数据,当查询的时间段较长时,速度很慢。请问,该如何处理?

解决方案 »

  1.   

    -- 创建一个分区表(表中以日期字段等分区),并创建相应的索引!-- 汇总三个表的数据到分区表,然后查询此分区表!-- 你若要求此分区表跟你三个表实时同步的话:
    -- 你可以分别在A、B、C表上创建一个与分区表数据同步的触发器!-- 或者:创建一个Job(若对同步要求不高)调用一个存储过程,这个存储过程的功能是:将A、B、C三表中每天-- 新增加的数据插入分区表-- 前提:A、B、C表不会有更新操作!
      

  2.   

    先从A表中将数据提取出来插入到临时表中,再和B、C表进行关联,如果B、C表数据量也很大,也先把需要的数据提取出来再关联,这样后查询性能应该能有比较大的提升。
      

  3.   

    确实 不容易 那个DBA 给点建议吧