你的各个表的数据量,表字段的索引情况,等等一无所知,怎么帮你优化啊.
你还是自己看explain plan.

解决方案 »

  1.   

    看不出什么,效率不应该不受这句SQL本身的影响
      

  2.   

    建立以下索引:
    vhpcestatus表 time_stamp字段
    sfc_batch表   time_stamp字段
    VHWKCSTATUS表 (time_stamp,object_id)字段上建立复合索引
    c_work_center表 id字段然后修改语句
    SELECT /*+ ordered*/ PCETIME.PCE_ID ID, PCETIME.LASTTIME KEEPTIME, wkc.id WKCID
      FROM (SELECT /*+ ordered*/ DISTINCT v.object_id PCE_ID,
                            MAX(v.time_stamp) max_time_stamp,
                            MIN((SYSDATE - t.START_TIME) * 24 * 60) LASTTIME
              FROM vhpcestatus v, sfc_batch t, VHWKCSTATUS w, c_work_center wkc
             WHERE v.time_stamp = t.time_stamp
               AND w.time_stamp = v.time_stamp
                  --and v.object_id = 414468421
               AND wkc.id = w.object_id
             GROUP BY v.object_id) PCETIME,
           VHWKCSTATUS w,
           c_work_center wkc
     WHERE w.time_stamp = PCETIME.max_time_stamp
       AND wkc.id = w.object_id只是粗略而且大概的估计了一下,呵呵