2013-04-05 84 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

指标
相关问题