Execution Time
: общее время, необходимое серверу Sql для завершения выполнения плана компиляции.
CPU Time
: фактическое время, потраченное на CPU. Если CPU time
равно 0, это означает, что запрос поступает напрямую изcache plan
. Если запрос compiling
и recompiling
, тогда загрузка процессора и CPU time
будут больше. Существуют и другие факторы, которые влияют на процессорное время.
Elapse Time
: общее время, необходимое для завершения анализа и компиляции, включая время, необходимое для получения результата клиенту.
Оба важны дляпонять. Если я хочу, чтобы показ результата клиенту в короткие сроки был очень важен, тогда я могу проигнорировать CPU time
. Так что в этом случае Elapse time
важнее, чем CPU Time
.
В другом случае я могу проигнорировать немного большее Elapse time
и сконцентрироваться на снижении высокого CPU time
.
Безчто я не могу понять, какое узкое место в моем выражении sql
Execution Time(CPU+Elapse)
само по себе не является узким местом. Это всего лишь показатель. Если это нежелательно, тогда вам нужно выяснить, какое operator
является узким местом, и предпринять соответствующие действия.
Как написать optimize query
или Index Tune
или изменить схему таблицы или какую-то другую вещь.
Согласно вашему тарифному плану Hash Match
считается самым дорогим оператором. Ваш основной запрос не отображается.
Вы также можете посмотреть, что Время ожидания
, почему общее время, проведенное в каждом плане, намного меньше, чем затраченное времясообщается из окна вывода сообщения, которое составляет 331 мс?
Предположим, у вас очень простой запрос, например,
Select * from Person.Person
В этом случае каждый оператор начинает выполнение после своего правого операторапрекратил выполнениеВ таком сценарии, теоретически говоря,
Total Elapse Time is sum of each operator Elapse Time.
Если запрос выполняется непосредственно из плана запроса или время Elapse слишком мало, то оно округляется до 0. Но теоретически, Total Elapse Time is sum of each operator Elapse Time
.
Сейчасвозьмите любой сложный запрос, как в вашем примере, один или несколько операторов начинают выполняться одновременно, а затем объединяются в один, конечное время истечения может быть другим.
Ваш основной план запроса не полностью виден, иначе я бы попытался объяснить, чтоЯ имею в виду.
Если вы используете Sql server 2016
или выше, вы можете посмотреть, как данные передаются и как работают несколько операторов.
Статистика запросов в реальном времени
Статистика активных запросов
Даже если у вас нет Sql server 2016, вы все равно можете понять реальный вопрос.