반응형

본 포스트는 Microsoft TechNet의 [논리 및 물리 연산자 참조]내용을 참고하여 정리한 내용이다.

※실행 계획 연산자 전체 보기

 

Clustered Index Scan 연산자는 물리 연산자로써, 쿼리 실행 계획의 Argument 열에 지정된 클러스터형 인덱스를 검색한다.

 

선택 사항인 WHERE:() 조건자가 있는 경우에는 조건자에 부합되는 행만 반환된다. 

Argument 열에 ORDERED 절이 있으면 쿼리 프로세서가 행의 출력이 클러스터형 인덱스에 의해 정렬되는 순서로 반환한다. ORDERED 절이 없으면 저장소 엔진은 출력을 정렬하지 않고 최적의 방법으로 인덱스를 검색합니다.

Clustered Index Scan 은 Table Scan 과 같다고 보면 된다. 왜냐하면, Clustered Index의 리프 레벨 페이지에는 실제 데이터가 저장되어 있기 때문이다. 우리가 흔히 생각하는 인덱스를 이용한 검색의 실행 계획 연산자는 Index Seek이다.

그리고, 당연히 해당 테이블에 클러스터형 인덱스가 정의되어 있을 경우에만 유효하다. 

 

그래프 실행 계획 아이콘  

 

 

Clustered Index Scan 연산자의 예

이해를 돕기 위해 dbo.ClusteredIndexScanTest 이름으로 테이블을 작성하고 col1에 Clustered Index를 작성하겠다.

CREATE TABLE dbo.ClusteredIndexScanTest
( col1 INT Identity(1, 1),
  col2 VARCHAR(10),
  CONSTRAINT ClusteredIndexScanTest_PK
     PRIMARY KEY CLUSTERED (col1) WITH FILLFACTOR = 100)
GO

 

Declare @i int

SET @i = 1

 

WHILE @i <= 200

BEGIN

    INSERT INTO dbo.ClusteredIndexScanTest(col2) values ('Data');

    SET @i = @i + 1

END

GO

 

 

이제 Clustered Index를 이용하여 검색해 보겠다.

SET NOCOUNT ON
GO

 

SET SHOWPLAN_ALL ON
GO

 

SELECT *

  FROM dbo.ClusteredIndexScanTest
GO

 

SET SHOWPLAN_ALL OFF
GO

  

텍스트 실행 계획

SttText

       SELECT *      FROM dbo.ClusteredIndexScanTest

  |--Clustered Index Scan(OBJECT:([TestDB].[dbo].[ClusteredIndexScanTest].[ClusteredIndexScanTest_PK]))

 

그래픽 실행 계획


 
반응형

+ Recent posts