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]
這並沒有改變的時候都沒有。有沒有什麼辦法來加快這個查詢,特別是如果有多個用戶?