试一下:
select field1
from db1.table1 where exists (
select 1 from db2.table2
where db1.table1.field1 = db2.table2.field2
and condition)
select field1
from db1.table1 where exists (
select 1 from db2.table2
where db1.table1.field1 = db2.table2.field2
and condition)
from db1.table1 t1
where exists(select *
from db2.table2 t2
where t1.field1=t2.field2 and ...)
如果查找几十条记录,一点都不慢。
不知你为何如此?
如果用的是SQL Server2000,
可以分析出时间都花在什么地方了,
哦,字段类型,
db1.table1.field1 = db2.table2.field2
数字比字符串快,
此外,没有必要给每个字段加索引,
不然,添加删除会慢点。
少用in,还有把有索引的字段的where条件放在离where最近的地方。
围绕它们,您可以试试(比如双cpu什么的,呵呵)
如果用:
select t1.field1
from db1.table1 t1
where exists(select *
from db2.table2 t2
where t1.field1=t2.field2 and ...)
则要保证t1的记录书很少,否则就用db2和db1对调更好,总之外层表的记录述要最少。