SQL Server Management Studio, как сократить время выполнения до миллисекунд - PullRequest
207 голосов
/ 23 ноября 2011

Когда я отправляю пакет (например, выполняю запрос) в SSMS, я вижу время, которое потребовалось для выполнения, в строке состояния. Можно ли настроить SSMS для отображения времени запроса с разрешением в миллисекундах?

Вот строка, о которой я говорю, с разделом интересов, обведенным красным:

enter image description here

Ответы [ 7 ]

340 голосов
/ 23 ноября 2011

То, что вы хотите сделать, это:

set statistics time on

-- your query

set statistics time off

В окне «Сообщения» вывод будет выглядеть примерно так:

Время выполнения SQL Server: время ЦП= 6 мс, прошедшее время = 6 мс.

110 голосов
/ 17 апреля 2015

Включите Статистика клиента , выполнив одно из следующих действий:

  • Меню: Запрос> Включить статистику клиента
  • Панель инструментов: нажмите кнопку (рядом сВключить фактическое время выполнения)
  • Клавиатура: Shift-Alt-S

Затем откроется новая вкладка, в которой записываются время, данные ввода-вывода, количество строк и т. Д. Для (до) последнего10 экзаменов (плюс средние!):

enter image description here

52 голосов
/ 20 ноября 2012

Я боролся с этим, пока не нашел это ...

http://blog.sqlauthority.com/2009/10/01/sql-server-sql-server-management-studio-and-client-statistics/

Кроме того, если вы откроете окно свойств, вы можете найти какое-то волшебное «Истекшее время соединения», которое можетдать вам время на выполнение ... Надеюсь, это поможет ...

16 голосов
/ 26 сентября 2013

Чтобы получить время выполнения в качестве переменной в вашем процессе:

DECLARE @EndTime datetime
DECLARE @StartTime datetime 
SELECT @StartTime=GETDATE() 

-- Write Your Query


SELECT @EndTime=GETDATE()

--This will return execution time of your query
SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in millisecs] 

И посмотрите это

Измерение производительности запроса: "Стоимость запроса плана выполнения" против "Взятого времени"«

8 голосов
/ 14 октября 2015

Я следовал тому же самому и наткнулся на следующую блестящую ссылку:

http://www.sqlserver.info/management-studio/show-query-execution-time/

Он показывает три разных способа измерения производительности.Все хорошо для собственных сил.То, что я выбрал, было следующим:


ОБЪЯВИТЬ @ ВРЕМЯ DATETIME

ЗАЯВИТЬ @ ВРЕМЯ DATETIME

SET @ Time1 = GETDATE ()

- Вставьте запрос сюда

SET @ Time2 = GETDATE ()

ВЫБРАТЬ DATEDIFF (MILLISECOND, @ Time1, @ Time2) AS Elapsed_MS


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

Надеюсь, это поможет.

2 голосов
/ 04 июня 2014

Не знаю, как расширить информационную панель.

Но вы можете установить тайминги по умолчанию для всех запросов, отображаемых на вкладке «Сообщения».

В окне «Запрос» перейдите к пункту «Меню запроса», выберите «Параметры запроса», затем выберите «Дополнительно» в группе «Выполнение» и установите флажки «Установить время статистики» / «Установить статистику ввода-вывода». Затем эти значения будут отображаться в области сообщений для каждого запроса без необходимости включать и выключать установленную статистику.

Вы также можете использовать Shift + Alt + S для включения статистики клиента в любое время

0 голосов
/ 15 апреля 2014

Вы можете попробовать этот код:

USE AdventureWorks2012;
GO
SET STATISTICS TIME ON;
GO
SELECT ProductID, StartDate, EndDate, StandardCost 
FROM Production.ProductCostHistory
WHERE StandardCost < 500.00;
GO
SET STATISTICS TIME OFF;
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...