Как проверить скорость запроса без загрузки актуальных данных? - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть процедура хранения нескольких наборов результатов на удаленном Sql Server 2008. В настоящее время процедура возвращает довольно большой набор результатов, который необходимо проанализировать и использовать на веб-сайте, который размещен на том же сервере, что и база данных..

Когда Sql Server отображает время, необходимое для получения данных, большая часть этого времени тратится на фактическую загрузку данных с удаленного сервера на мою локальную машину разработки.

Как можноЛучше проверить фактическую скорость запроса, удалив время загрузки, связанное с данными, возвращаемыми этим запросом?

Я хочу получить время выполнения запроса, как если бы сервер баз данных был локальным для моего компьютера.

Ответы [ 3 ]

0 голосов
/ 27 сентября 2011

Вы можете вставить данные во временную таблицу.Вы добавляете немного издержек в процесс, но незначительно по сравнению с задержкой в ​​сети.

SELECT * INTO #TempTable FROM [Table]

Предложение INTO (Transact-SQL)

0 голосов
/ 27 сентября 2011

Чтобы исключить проблемы сети из рассмотрения и просто посмотреть статистику выполнения, я часто присваиваю результаты переменным.

Так что вместо

SELECT name,type, COUNT(*)
FROM master..spt_values
GROUP BY name,type

Например, я бы использовал

DECLARE @name nvarchar(35), @type nchar(3), @count int

SELECT @name= name, @type = type, @count = COUNT(*)
FROM master..spt_values
GROUP BY name,type

В SSMS есть опция отмены результатов после выполнения, но она также отбрасывает вывод SET STATISTICS IO ON и т. Д., Что не очень полезно.

0 голосов
/ 27 сентября 2011

SentryOne Plan Explorer - бесплатная загрузка - позволяет делать это при создании фактического плана выполнения из инструмента.Он запускает запрос на сервере и отбрасывает результаты, поэтому указанные значения времени - это просто время на сервере.Для получения дополнительной информации о Plan Explorer:

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