Различия в производительности между форматом результата в SSMS - PullRequest
0 голосов
/ 19 марта 2012

Я использую Sql Server Management studio и выполняю запрос с оператором выбора.

В начале и конце запроса у меня есть select getdate()

Если яЗапустив запрос с «Результаты в таблицу» вместо «Результаты в текст», я получаю ОЧЕНЬ разную разницу между этими значениями времени (я запускал несколько раз, чтобы исключить сбои в кешировании).

Эти времена явно генерируютсяна самом сервере SQL (потому что они являются частью запроса) в отличие от Management Studio, учитывая, почему выходные данные результата влияют на время выполнения запроса?

1 Ответ

1 голос
/ 19 марта 2012

Если это запрос из нескольких частей, например ::100100

--Get the start time
SELECT getdate();

SELECT * FROM foo;

--Get the end time
SELECT getdate();

Мое предположение заключается в том, что различие заключается в том, что SSMS отображает результаты каждой части перед выполнением следующей части запроса (или, более вероятно, перед переходом к этому набору результатов и, следовательно, заставляет SQL Server оценить последний оператор) , Рендеринг в сетку, вероятно, занимает значительно больше времени, чем написание простого текста, поэтому время может быть другим.

Это единственное объяснение, если режим рендеринга клиента действительно влияет на время между первым и последним GetDate ().

Если вам нужна истинная синхронизация с одним оператором на стороне сервера, вам может понадобиться использовать SQL Server Profiler для определения времени выполнения самого запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...