這幾天在開發一個模塊的時候,遇到一個棘手的問題:海量數據的查詢效率問題,在下面的sql語句中,sf02表的數據在七千萬左右,sf01表的數據在三千萬左右,并且兩個表有關聯:
select a.tcol2, a.departcode, a.sendtime, sum(a.mainamount) mainamount
from sf02 a
where a.ksdm = '11019204'
and exists
(select policyno
from sf01 b
where b.businessnature = '531'
union all select policyno from sf01 b where b.businessnature = '532'
and a.policyno = b.policyno)
and (a.kindcode = 'R21' or a.kindcode = 'R29')
and a.insert_time <= to_date('2011-09-05', 'yyyy-MM-dd')
and a.insert_time >= to_date('2000-08-25', 'yyyy-MM-dd')
group by a.tcol2, a.departcode, a.sendtime
由于數據庫是分公司的,創建臨時表不是太好使,這個問題一直沒有太好的解決辦法,不知道各位有沒有好的思路,希望各位留下寶貴的意見,由于這個帖子放在提問區一直沒有人瀏覽,不得已放在首頁,還請blogJava對該帖放行,非常感謝。