0
很慢我打开下面的查询DAO记录:.MoveNext在DAO记录
SELECT sd.pointnumber
FROM (sdn INNER JOIN sd ON sdn.filename=sd.filename)
INNER JOIN o ON sd.oID = o.id
WHERE o.id = [oID]
And sdn.Line <> [sdnLine];
表sd
大约有500000条记录和30列,表sdn
有大约5000条记录和4列。表O
有6条记录和12列。
我打开记录有:
Dim qdf As QueryDef
Set qdf = CurrentDb.QueryDefs("oSdSdn2")
qdf.Parameters("oID") = oID
qdf.Parameters("sdnLine") = line
Set rs = qdf.OpenRecordset(dbOpenForwardOnly)
当我有数据库作为唯一的用户,我第一次打电话.MoveNext
上rs
开放的,它需要1-2分钟才能执行;之后,每个.MoveNext
发生在不到一秒钟。当数据库中有多个用户时,每个.MoveNext
需要1-2分钟。
表已在sdn.Line
,o.id
和sd.oID
上编入索引。
我试图在降低行的总数进程的希望不同的结构化查询:
select pointnumber from
(select pointnumber,filename from sd where oID=[oID]) sd
inner join
sdn
on
sd.filename=sdn.filename
where
sdn.line<>[sdnLine]
这并没有改变的时候都没有。有没有什么办法来加快这个查询,特别是如果有多个用户?