반응형

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

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

 

RID Lookup은 물리연산자로써 제공된 RID(행 식별자)를 사용하여 힙을 조회하는 책갈피 조회이다.

Bookmark Lookup 연산자에서 설명하였듯이 SQL Server 2005 이후 버전에서 Bookmark Lookup 연산자의 기능을 대신한다.

SQL Server 2005 SP2 이후에서는 Key Lookup 연산자도 동일한 기능을 제공한다.

RID Lookup은 항상 NESTED LOOP JOIN과 함께 사용된다.

 

그래프 실행 계획 아이콘  


    

 

RID Lookup 연산자의 예

아래의 예제는 [dbo].[DatabaseLog] 테이블에서 DatabaseLogID = 1인 데이터를 조회하고 있다.

SELECT *
  FROM [dbo].[DatabaseLog]
 WHERE DatabaseLogID = 1

 

[dbo].[DatabaseLog] 테이블의 [DatabaseLogID] 컬럼에는 넌클러스터드 인덱스(PK_DatabaseLog_DatabaseLogID)가 작성되어 있다.

작성된 넌클러스터드 인덱스에서 DatabaseLogID = 1인 행의 RID값을 NESTED LOOP JOIN([Bmk1000]=[Bmk1000])으로 조인하여

조회하고 있다.

 

텍스트 실행 계획

SttText

SELECT * FROM [dbo].[DatabaseLog] WHERE [DatabaseLogID]=@1
  |--Nested Loops(Inner Join, OUTER REFERENCES:([Bmk1000]))
       |--Index Seek(OBJECT:([AdventureWorks].[dbo].[DatabaseLog].[PK_DatabaseLog_DatabaseLogID])
        , SEEK:([AdventureWorks].[dbo].[DatabaseLog].[DatabaseLogID]=CONVERT_IMPLICIT(int,[@1],0))
          ORDERED FORWARD)
       |--RID Lookup(OBJECT:([AdventureWorks].[dbo].[DatabaseLog])
        , SEEK:([Bmk1000]=[Bmk1000]) LOOKUP ORDERED FORWARD)

 

그래픽 실행 계획


 

 

반응형

+ Recent posts