我在Microsoft Access中運行以下2個查詢,結果相同,但第二個查詢在大約5秒內運行,而第一個查詢大約需要10分鐘。我完全迷失在這裏。第一個查詢連接另一個整數字段上的整數字段,第二個查詢將cint(text)
字段連接到整數字段上,運行速度更快。爲什麼int字段上的Cint(char字段)連接比int int更快?
奔跑在10分鐘內:
我設置tblA.number =整數字段
SELECT A, B, sum(d) as C
FROM tblA
INNER JOIN (tblB INNER JOIN tblC ON tblB.A = tblC.A)
ON tblA.number = tbl B.B)
GROUP BY A, B
HAVING F like '*808*'
奔跑在5秒內: - 注意到cint(tblA.A)
I set tblA.number = text field
SELECT A, B, sum(d) as C
FROM tblA
INNER JOIN (tblB INNER JOIN tblC ON tblB.A = tblC.A)
ON cint(tblA.number) = tbl B.B)
GROUP BY A, B
HAVING F like '*808*'
如果您重複測試,您是否得到類似的結果(即沒有1次優化成本)? 'tblB'的定義是什麼? – 2012-01-10 22:23:55
你確定在你的第一個查詢中你的tblA.number是一個數字嗎? – wickedone 2012-01-10 22:27:05
'具有像'* 808 *'':是在這一節中的列A是你從一個數字到文本之間來回切換的同一個字段? – mwolfe02 2012-01-10 22:32:44