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

那么有人可以建议我一种方法,以便我可以进行一些批量操作来获取数据吗?

4

1 回答 1

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.twoid并且t1.oneid

于 2013-04-10T08:44:32.410 回答