Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Co to jest we/wy STATYSTYKI w programie SQL Server?

W SQL Server możesz użyć SET STATISTICS IO instrukcja do generowania szczegółowych informacji o ilości aktywności dysku generowanej przez instrukcję T-SQL.

W narzędziach graficznych, takich jak SSMS i Azure Data Studio, możesz wyświetlić te informacje w Wiadomościach zakładka.

Przykład

Oto prosty przykład do zademonstrowania.

SET STATISTICS IO 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;

Początkowo prawdopodobnie zobaczysz wyniki zapytania jak zwykle:

Aby wyświetlić dane wyjściowe STATISTICS IO , kliknij Wiadomości zakładka:

Ten przykład został wykonany w Azure Data Studio i jest to ten sam proces w przypadku korzystania z programu SSMS. Jednak rzeczywiste kroki, które musisz wykonać, mogą zależeć od narzędzia używanego do łączenia się z SQL Server.

Poniżej znajduje się kopia STATISTICS IO wiadomość z powyższego zrzutu ekranu:

(6 rows affected)
Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'Workfile'. Scan count 0, logical reads 0, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'StateProvinces'. Scan count 1, logical reads 2, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'Cities'. Scan count 1, logical reads 497, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Total execution time: 00:00:00.027

Jak to wyłączyć

Ustawianie STATISTICS IO na ON wpływa na wszystkie kolejne instrukcje T-SQL, dopóki nie zostanie wyłączone.

Aby go wyłączyć, po prostu uruchom go ponownie, używając OFF zamiast ON :

SET STATISTICS IO OFF;

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. najlepszy sposób na konwersję i walidację ciągu daty

  2. Algorytm pozwalający uniknąć wstrzykiwania SQL na MSSQL Server z kodu C#?

  3. Jak napisać .Skip(1000).Take(100) LINQ w czystym SQL?

  4. @@BŁĄD i/lub SPRÓBUJ - CATCH

  5. Dlaczego użycie znaku podkreślenia w filtrze LIKE daje mi wszystkie wyniki?