当表有数百万条记录时,如何在桌面上进行搜索

时间:2013-04-05 06:01:29

标签: database sybase

我必须在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

所以任何人都可以建议我这样做,以便我可以做一些批量操作来获取数据吗?

1 个答案:

答案 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

上有索引,它应该更快