Я тестировал свое приложение в базе данных SQL Server 2005 и пытаюсь определить предварительную картину производительности запроса с помощью sys.dm_exec_query_stats.
Проблема: есть определенный запрос, который меня интересует, потому что total_elapsed_time и last_elapsed_time оба являются большими числами. Когда я щекочу свое приложение, чтобы вызвать этот запрос (он успешно выполняется), а затем обновить свой взгляд на статистику, я обнаружил, что
1) число выполнения увеличилось (ожидается)
2) last_execution_time обновлен до настоящего времени (ожидается)
3) last_elapsed_time по-прежнему большое значение (не ожидалось - я ожидал новое значение)
4) total_elapsed_time не изменяется (противоречие?)
Если last_elapsed_time относится к выполнению, которое произошло @ last_execution_time, тогда total_elapsed_time должно было увеличиться?
Эта документация: http://msdn.microsoft.com/en-us/library/ms189741(SQL.90).aspx говорит мне, что last_execution_time - это последний раз, когда план выполнялся, а last_elapsed_time - из "последнего выполненного плана", но не говорит, почему они могут отличаться.
Сам запрос несложен (SELECT / WHERE / ORDER BY - параметры, появляющиеся в предложении where, но без хитрых операций), в таблице сейчас может быть 25 строк.
Вопросы:
1) Каковы реальные отношения между execute_count, last_execution_time и last_elapsed_time?
2) Где находится документация об этих отношениях (руководство, сторонняя книга, блог, жучок, каменные таблички ...)?