0
我有2個需要加入的表。提高連接性能
都有很多記錄。
表(表a)中的一個索引如下:account_number,start_date,end_date(全部唯一)。
第二個表沒有索引(表b)。
表a有大約450,000,000條記錄,表b有大約20,000,000條記錄。 眼下加入需要大約20分鐘,我需要更快.. 這是查詢:
select *
from a, b
where
a.ACCOUNT_NUMBER = b.ACCOUNT_NUMBER AND
TRUNC(a.CREATE_DATE) BETWEEN b.START_DATE AND b.END_DATE
,關於如何提高它的任何想法(索引,分區,另一種加入的) 有什麼想法將受到歡迎。
在最合理的情況下,此查詢可能會返回數千萬行。結果集有多大?您的查詢可能已被優化。結果集可能真的很大。 –
開始時,您可以在'b.account_number'上創建索引。如果此列值分散可能足夠。 – partlov
你能發佈dbms_xplan輸出嗎? – stee1rat