В SQL Server можете да използвате SET STATISTICS TIME
оператор за показване на времето, необходимо за изпълнение на T-SQL оператор.
По-конкретно, той връща броя милисекунди, необходими за анализиране, компилиране и изпълнение на всеки израз.
Когато SET STATISTICS TIME
е ON
, се показва статистиката за времето за изявление. Когато OFF
, статистиката за времето не се показва.
Настройката на SET STATISTICS TIME
се задава по време на изпълнение или изпълнение, а не по време на синтактичен анализ.
Пример
Ето един прост пример за демонстрация.
SET STATISTICS TIME ON;
GO
SELECT
c.CityName,
s.StateProvinceName AS State,
c.LatestRecordedPopulation AS Population
FROM Application.Cities c
INNER JOIN Application.StateProvinces s
ON c.StateProvinceID = s.StateProvinceID
WHERE c.LatestRecordedPopulation > 2000000
ORDER BY c.LatestRecordedPopulation DESC;
GO
Резултат:
Commands completed successfully. +-------------+------------+--------------+ | CityName | State | Population | |-------------+------------+--------------| | New York | New York | 8175133 | | Los Angeles | California | 3792621 | | Chicago | Illinois | 2695598 | | Brooklyn | New York | 2565635 | | Queens | New York | 2272771 | | Houston | Texas | 2099451 | +-------------+------------+--------------+ SQL Server parse and compile time: CPU time = 4 ms, elapsed time = 6 ms. Commands completed successfully.
Използвате GUI?
Ако изпълнявате заявката си в GUI, като SSMS или Azure Data Studio, може да се наложи да щракнете върху Съобщения раздел или подобно, за да видите статистиката за времето.
Ето какво се случва, когато изпълня предишната заявка в Azure Data Studio.
Получавам резултатите, но не и STATISTICS TIME
информация. За да видя тази информация, трябва да щракна върху Съобщения . След като го направя, мога да видя съответната информация.
Последващи заявки
След като е зададен на ON
, всички следващи заявки ще върнат STATISTICS TIME
информация, докато не бъде зададена на OFF
.
Ето още една ad hoc заявка, която изпълних в интерфейса на командния ред веднага след първата.
SELECT COUNT(*) FROM Application.People;
Резултат:
+--------------------+ | (No column name) | |--------------------| | 1111 | +--------------------+ SQL Server parse and compile time: CPU time = 6 ms, elapsed time = 6 ms.
Вече бях задал STATISTICS TIME
до ON
преди, следователно няма нужда да го правите отново.
Изключете го
За да го изключите, просто го задайте на OFF
.
SET STATISTICS TIME OFF;
Сега, когато изпълнявам T-SQL оператори, вече не получавам статистическите данни за времето под заявката.
SELECT COUNT(*) FROM Application.People;
Резултат:
+--------------------+ | (No column name) | |--------------------| | 1111 | +--------------------+ (1 row affected)