2012-09-28 67 views
4

我已經被超過DSN通過odbc_connect在PHP中執行以下查詢:訪問,ODBC和PHP與慢WHERE子句

SELECT Orders.Brand, Orders.AdFolder 
    FROM Orders 
    LEFT JOIN MPC_Agents ON Orders.UserName = MPC_Agents.UserName 
WHERE Orders.AdFolder = '$udf' 

當直接在MS Access運行結果是即時的。當通過odbc_execute($conn, $query)運行時,速度非常慢,但稍後會執行。

當刪除WHERE語句時,儘管在Access SQL控制檯中運行的速度與WHERE語句的運行速度相同,但速度更快。

任何人都可以幫助確定問題?

+0

你有合適的索引嗎? – Fionnuala

+0

@remou正確,請作爲回答:) – rickyduck

回答

3

要防止整個表被查詢拉動,重要的是要有適當的索引。

+0

順便說一句,爲什麼直接在MS Access內運行時不是這種情況? – rickyduck

+2

我不確定細節,但MS Access使用本機DAO,這是目前使用MS Access最快的方式。 – Fionnuala