有兩個表SQL半加入優化
t1 { id, name, ...}
t2 { t1_id , date_time, parameter, value, ...}
T1和T2是預言的分區表。 t2很大。
我要取的時間範圍從T2匹配T1:
select id, name, ... from t1 partition(t1_partition_name)
where t1.id in(select distinct t1_id from t2 partition(t2_partition_name)
where date_time > to_date('20120627 00','YYYYMMDD HH24')
and date_time <to_date('20120627 12','YYYYMMDD HH24')
)
子查詢將返回10K左右t1_id。 它真的很慢,有什麼建議嗎?
你在兩個表上的分區方案是什麼,你有任何索引(全局/本地)?數據量是多少(基數,行數)? –
刪除'distinct'。它使用哈希來完成連接?你能發佈執行計劃嗎? –
執行計劃會有幫助 –