반응형

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

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

 

Clustered Index Delete 연산자는 물리 연산자로써, 쿼리 실행 계획의 Argument 열에 지정된 클러스터형 인덱스에서 행을 삭제한다.

 

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

클러스터형 인덱스의 최하위 리프 레벨에는 실제 데이터가 저장되어 있으므로 클러스터형 인덱스에서 WHERE 조건에 부합되는 행을 제거하는 것이다.

 

그래프 실행 계획 아이콘 

 

 

Clustered Index Delete 연산자의 예

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

CREATE TABLE dbo.ClusteredIndexDeleteTest
( col1 TINYINT IDENTITY(1,1),
  col2 VARCHAR(1),
  CONSTRAINT ClusteredIndexDeleteTest_PK
     PRIMARY KEY CLUSTERED (col1) WITH FILLFACTOR = 100)
GO

 

INSERT INTO dbo.ClusteredIndexDeleteTest (col2) VALUES ('A');
INSERT INTO dbo.ClusteredIndexDeleteTest (col2) VALUES ('B');
INSERT INTO dbo.ClusteredIndexDeleteTest (col2) VALUES ('C');
INSERT INTO dbo.ClusteredIndexDeleteTest (col2) VALUES ('D');
GO

 

SELECT * FROM dbo.ClusteredIndexDeleteTest
GO

 

Result>>

col1 col2
---- ----
1    A
2    B
3    C
4    D

 

이제 col1 _ 1인 데이터를 삭제해 보겠다.

SET NOCOUNT ON
GO

 

SET SHOWPLAN_ALL ON
GO

 

DELETE FROM dbo.ClusteredIndexDeleteTest
 WHERE col1 = 1
GO

 

SET SHOWPLAN_ALL OFF
GO

 

텍스트 실행 계획

SttText

DELETE FROM dbo.ClusteredIndexDeleteTest WHERE col1 = 1

  |--Clustered Index Delete (OBJECT:([AdventureWorks].[dbo].[ClusteredIndexDeleteTest]....,
                              WHERE:([AdventureWorks].[dbo].[ClusteredIndexDeleteTest].[col1]=[@1]))

 

그래픽 실행 계획


 

반응형

+ Recent posts