2013-04-05 81 views
0

我必須在sybase數據庫中運行以下查詢,這將返回數百萬條記錄。 但當我運行它花了很多時間和許多次超時。如何在表中有數百萬條記錄時對錶進行搜索

select * from table1 t1 
where t1.oneid IN 
(
select t2.oneid 
from table2 t2 
where t2.twoid IN 
(
    select DISTINCT t3.twoid from table3 t3 
) 
) 
at isolation 0 

所以任何人都可以建議我一種方式,所以我可以做一些批量操作獲取數據?

回答

0

試試這個:

SELECT 
    t1.* 
FROM (
    SELECT 
     DISTINCT t3.twoid 
    FROM table3 t3 
) as tmp 
INNER JOIN table2 t2 
    ON t2.twoid = tmp.twoid 
INNER JOIN table1 t1 
    ON t1.oneid = t2.oneid 

應該會更快,特別是如果你有t2.twoidt1.oneid

指標
相關問題