Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какво е STATISTICS XML в SQL Server?

В SQL Server можете да използвате SET STATISTICS XML оператор за генериране на подробна информация за това как е изпълнен T-SQL оператор.

Тази информация се предоставя под формата на добре оформен XML документ.

Веднъж SET STATISTICS XML е настроен на ON , всеки следващ израз се отразява в изхода от един XML документ.

Всеки XML документ съдържа текста на оператора, последван от подробностите за стъпките за изпълнение.

Резултатът показва информация по време на изпълнение, като например разходите, индексите за достъп и видовете извършени операции, реда на присъединяване, броя на извършването на физическа операция, броя на редовете, произведен от всеки физически оператор и др.

Пример

Ето един прост пример за демонстрация.

SET STATISTICS XML ON;

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;

Резултат:

Когато направите това с помощта на графичен инструмент като SSMS или Azure Data Studio (на снимката), вероятно ще видите графичен план за заявка като този на екранната снимка.

В този случай вероятно ще можете да щракнете върху различни раздели, за да видите действителните резултати, както и други статистически данни.

Ето какво се случва, когато щракна върху Резултати раздел:

В този случай виждам действителните резултати, плюс още един ред с XML Showplan. Щракването върху този ред отваря XML документа в нов прозорец:

И ето какво се случва, когато щракна върху Водещи операции раздел:

Как да го изключим

Настройка на STATISTICS XML до ON засяга всички следващи T-SQL изрази, докато не бъде изключен.

За да го изключите, просто го стартирайте отново, като използвате OFF вместо ON :

SET STATISTICS XML OFF;

STATISTICS XML Заменя STATISTICS PROFILE

Съгласно документацията на Microsoft, SET STATISTICS XML трябва да се използва вместо SET STATISTICS PROFILE .

SET STATISTICS PROFILE и SET STATISTICS XML са двойници един на друг. Първият произвежда текстови резултати; последният произвежда XML изход. В бъдещите версии на SQL Server информацията за новия план за изпълнение на заявка ще се показва само чрез оператора SET STATISTICS XML, а не чрез оператора SET STATISTICS PROFILE.

СТАТИСТИКА XML срещу Включване на действителен план за изпълнение

Ако Включете действителен план за изпълнение е избран в SSMS, SET STATISTICS XML не произвежда XML Showplan изход. Изчистете Включи действителен план за изпълнение преди да използвате SET STATISTICS XML .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да копирате запис в SQL таблица, но да замените уникалния идентификатор на новия ред?

  2. Всеки израз GROUP BY трябва да съдържа поне една колона, която не е външна препратка

  3. Превръщане на низ, разделен със запетая, в отделни редове

  4. DATEDIFF() срещу DATEDIFF_BIG() в SQL Server:Каква е разликата?

  5. Възстановяване на основната база данни на SQL Server