다음을 통해 공유


SET STATISTICS IO(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Transact-SQL 문에 의해 생성된 물리적 및 논리적 IO 작업 양에 대한 정보가 SQL Server에 표시되도록 합니다. 물리적 IO는 디스크의 데이터 페이지 액세스와 관련이 있으며 논리적 IO는 메모리의 데이터 페이지 액세스(데이터 캐시)와 관련이 있습니다.

Transact-SQL 구문 표기 규칙

Syntax

SET STATISTICS IO { ON | OFF }

참고 항목

SQL Server 2014(12.x) 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

출력

다음 표에서는 출력 항목을 나열하고 설명합니다.

출력 항목 의미
Table 테이블 이름입니다.
Scan count 출력에 대한 최종 데이터 세트를 구성하도록 모든 값을 검색하기 위해 어느 방향으로든 리프 수준에 도달한 후 시작된 찾기 또는 검색의 횟수입니다.

사용된 인덱스가 고유 인덱스이거나 기본 키의 클러스터형 인덱스이고 값을 하나만 찾는 중인 경우 검색 수가 0입니다. 예들 들어 WHERE Primary_Key_Column = <value>입니다.
기본 키 열이 아닌 키 열에 정의된 고유하지 않은 클러스터형 인덱스를 사용하여 하나의 값을 검색하는 경우에는 검색 수가 1입니다. 이 프로세스는 검색 중인 키 값의 중복 값을 확인하기 위해 수행됩니다. 예들 들어 WHERE Clustered_Index_Key_Column = <value>입니다.
검색 횟수는 N이 인덱스 키를 사용하여 키 값을 찾은 후 리프 수준에서 왼쪽 또는 오른쪽으로 시작된 다양한 검색 또는 검색의 수인 경우 N입니다.
logical reads 데이터 캐시에서 읽은 페이지 수입니다.
physical reads 디스크에서 읽은 페이지 수입니다.
page server reads 페이지 서버에서 읽은 페이지 수입니다. **
read-ahead reads 미리 읽기를 통해 쿼리에 의해 캐시에 배치된 페이지 수입니다.
page server read-ahead reads 미리 읽기를 통해 페이지 서버에서 읽고 쿼리에 의해 데이터 캐시에 배치된 페이지 수입니다. **
lob logical reads 데이터 캐시에서 읽은 LOB* 페이지 수입니다.
lob physical reads 디스크에서 읽은 LOB* 페이지 수입니다.
lob page server reads 페이지 서버에서 읽은 LOB* 페이지 수입니다. **
lob read-ahead reads 미리 읽기를 통해 쿼리에 의해 데이터 캐시에 배치된 LOB* 페이지 수입니다.
lob page server read-ahead reads 페이지 서버에서 읽고 미리 읽기를 통해 쿼리에 의해 데이터 캐시에 배치된 LOB* 페이지 수입니다. **

* LOB(큰 개체 이진) 데이터 형식에는 텍스트, ntext, image, varchar(max), nvarchar(max), varbinary(max) 또는 columnstore 인덱스 페이지가 포함됩니다.

** Azure SQL Database 하이퍼스케일의 경우 0이 아닙니다.

설명

ON이면 STATISTICS IO 통계 정보가 표시되고 OFF이면 정보가 표시되지 않습니다.

이 옵션을 ON으로 설정한 후에는 이 옵션을 OFF로 설정할 때까지 모든 Transact-SQL 문에서 통계 정보를 반환합니다.

설정 SET STATISTICS IO 은 구문 분석 시간이 아니라 실행 또는 런타임에 설정됩니다.

참고 항목

Transact-SQL 문이 LOB 열을 검색할 때 일부 LOB 검색 작업에 대해서는 LOB 트리를 여러 번 이동해야 할 수 있습니다. 이로 인해 SET STATISTICS IO가 예상된 논리 읽기보다 높은 보고서를 작성할 수 있습니다.

사용 권한

사용 SET STATISTICS IO하려면 사용자에게 Transact-SQL 문을 실행할 적절한 권한이 있어야 합니다. SHOWPLAN 권한은 필요하지 않습니다.

예제

다음 예에서는 문을 처리할 때 SQL Server에서 사용하는 논리적 및 물리적 읽기 수를 보여 줍니다.

USE AdventureWorks2022;  
GO         
SET STATISTICS IO ON;  
GO  
SELECT *   
FROM Production.ProductCostHistory  
WHERE StandardCost < 500.00;  
GO  
SET STATISTICS IO OFF;  
GO  

메시지 출력은 다음과 같습니다.

Table 'ProductCostHistory'. Scan count 1, logical reads 76, 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.