sql >> Database >  >> RDS >> Sqlserver

Wat is STATISTICS IO in SQL Server?

In SQL Server kunt u de SET STATISTICS IO . gebruiken statement om gedetailleerde informatie te genereren over de hoeveelheid schijfactiviteit die wordt gegenereerd door een T-SQL-statement.

In grafische tools zoals SSMS en Azure Data Studio kunt u deze informatie bekijken in de Berichten tabblad.

Voorbeeld

Hier is een eenvoudig voorbeeld om te demonstreren.

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;

In eerste instantie ziet u waarschijnlijk de resultaten van de zoekopdracht zoals gewoonlijk:

Om de uitvoer van STATISTICS IO te bekijken , klik op de Berichten tabblad:

Dit voorbeeld is gedaan in Azure Data Studio en het is hetzelfde proces bij het gebruik van SSMS. De daadwerkelijke stappen die u moet gebruiken, kunnen echter afhangen van de tool die u gebruikt om verbinding te maken met SQL Server.

Hieronder vindt u een kopie van de STATISTICS IO bericht uit de bovenstaande schermafbeelding:

(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

Hoe het uit te schakelen

STATISTICS IO instellen naar ON beïnvloedt alle volgende T-SQL-instructies totdat het wordt uitgeschakeld.

Om het uit te schakelen, voert u het gewoon opnieuw uit met OFF in plaats van ON :

SET STATISTICS IO OFF;

  1. Een reeks SQL-query's uitvoeren met behulp van een batchbestand?

  2. Variabele gebruiken in een LIMIT-clausule in MySQL

  3. Meerdere tabellen retourneren vanuit een opgeslagen procedure

  4. Barman gebruiken voor PostgreSQL Disaster Recovery