我收到报告说我的报表生成应用程序无法正常工作。经过初步调查,我发现SQL事务超时了。我很困惑为什么查询更少的项目会花费更长时间返回结果。
快速查询(平均需要4秒返回):
SELECT * FROM Payroll WHERE LINEDATE >= '04-17-2010'AND LINEDATE <= '04-24-2010' ORDER BY 'EMPLYEE_NUM' ASC, 'OP_CODE' ASC, 'LINEDATE' ASC
长查询(平均需要1分20秒返回结果):
SELECT * FROM Payroll WHERE LINEDATE >= '04-18-2010'AND LINEDATE <= '04-24-2010' ORDER BY 'EMPLYEE_NUM' ASC, 'OP_CODE' ASC, 'LINEDATE' ASC
我可以简单地增加SqlCommand的超时时间,但这并不改变查询所花费的时间比预期更长的事实。
为什么请求子集的项目要比返回更多数据的查询时间更长?我如何优化此查询?