본 포스트는 Microsoft TechNet의 [논리 및 물리 연산자 참조]내용을 참고하여 정리한 내용이다.
Clustered Index Seek 연산자는 논리/물리 연산자로써, Argument 열에 공급 받은 SEEK:() 조건자에 부합되는 행만 클러스터형 인덱스에서 검색한다.
Argument 열에 ORDERED 절이 있으면 쿼리 프로세서는 클러스터형 인덱스가 정렬한 순서대로 행을 반환하며, ORDERED 절이 없으면 저장소 엔진은 출력을 정렬하지 않고 최적의 방법으로 인덱스를 검색한다.
키워드 LOOKUP을 사용하면 책갈피 조회가 수행된다. SQL Server 2005 SP2 부터는 Key Lookup 연산자가 책갈피 조회 기능을 제공한다.
그래프 실행 계획 아이콘
Clustered Index Seek 연산자의 예
이해를 돕기 위해 dbo.ClusteredIndexSeekTest 이름으로 테이블을 작성하고 col1에 Clustered Index를 작성하겠다.
CREATE TABLE dbo.ClusteredIndexSeekTest
Declare @i int SET @i = 1
WHILE @i <= 200 BEGIN INSERT INTO dbo.ClusteredIndexSeekTest(col2) values ('Data'); SET @i = @i + 1 END GO
|
이제 Clustered Index를 이용하여 검색해 보겠다.
SET NOCOUNT ON
SET SHOWPLAN_ALL ON
SELECT * FROM dbo.ClusteredIndexSeekTest WHERE col1 = 10
SET SHOWPLAN_ALL OFF |
텍스트 실행 계획
SttText |
SELECT * FROM dbo.ClusteredIndexSeekTest WHERE col1 = 10 , SEEK:([TestDB].[dbo].[ClusteredIndexSeekTest].[col1]=CONVERT_IMPLICIT(int,[@1],0)) ORDERED FORWARD) |
그래픽 실행 계획
|