sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är STATISTICS IO i SQL Server?

I SQL Server kan du använda SET STATISTICS IO uttalande för att generera detaljerad information om mängden diskaktivitet som genereras av en T-SQL-sats.

I grafiska verktyg som SSMS och Azure Data Studio kan du se denna information i Meddelanden flik.

Exempel

Här är ett enkelt exempel att visa.

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;

Till en början kommer du förmodligen att se frågeresultaten som vanligt:

För att se utdata från STATISTICS IO klickar du på Meddelanden tab:

Det här exemplet gjordes i Azure Data Studio, och det är samma process när du använder SSMS. Men de faktiska stegen du behöver använda kan bero på vilket verktyg du använder för att ansluta till SQL Server.

Nedan finns en kopia av STATISTICS IO meddelande från ovanstående skärmdump:

(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

Hur man stänger av det

Inställning av STATISTICS IO till ON påverkar alla efterföljande T-SQL-satser tills den stängs av.

För att stänga av det, kör det helt enkelt igen med OFF istället för ON :

SET STATISTICS IO OFF;

  1. Komma igång med GearHost för MySQL-databasutveckling

  2. Konvertera escaped Unicode-tecken tillbaka till faktiska tecken i PostgreSQL

  3. Implementera Switchover/Switchback i PostgreSQL 9.3.

  4. Bör varje användartabell ha ett klusterindex?