我在 SQLSERVER 2008 上运行查询。查询需要 4 秒来处理。我不明白为什么要花这么长时间。
SELECT tbl_Operations.Workcenter
,SUM(tbl_Used_Components.Used_Quantity) as CNF_TODAY
FROM tbl_Used_Components
JOIN tbl_Pack_Division on tbl_Pack_Division.Pack_Division_ID =
tbl_Used_Components.Pack_Division_ID
JOIN tbl_Operations on tbl_Operations.Operation_ID = tbl_Pack_Division.Operation_ID
where CONVERT(date, tbl_Pack_Division.Stop_Time) = CONVERT(date, getdate())
AND tbl_Pack_Division.Memo = 'NORMAL'
and tbl_Pack_Division.Status = 'CNF_MACH'
GROUP BY tbl_Operations.Workcenter
问题出在 where 子句中。当我运行没有 Where 子句的查询时,它会在 0.1 秒内运行。当我添加前 2 个参数时,它仍然运行良好。但是当我在 Status-field 上添加第三个参数时,它出错了。
这怎么可能是个问题?它是与第二个(备忘录字段)相同粒度的选择。
编辑:
Status varchar(10) -- 可以有 5 个不同的值
备忘录 varchar(150)
唯一索引:Pack_Division_ID bigint