Я получил сообщения о том, что приложение для создания отчетов не работает. После первоначального расследования я обнаружил, что время транзакции 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, но это не меняет того факта, что запрос занимает больше времени, чем должно.
Почему запрос подмножества элементов занимает больше времени, чем запрос, который возвращает больше данных? Как я могу оптимизировать этот запрос?