.NET프로그래밍/SQL Server 2008

37. 인덱스(Index)의 효과 - 인덱스 사용에 따른 성능(속도) 비교.

holland14 2009. 9. 16. 20:41

--[1] 전체레코드출력

Select Count(*) From Zip

Go

 

--[2] 아래두코드를블록잡고Ctrl + L : 예상실행계획--> 성능(비용)비교

-- 비용(성능)은적게들수록좋다.(= 성능이좋다.)

-- Full Scan : 모두훑어보기

Select * From Zip Where Dong Like '%역삼%' -- 50%

Go

Select * From Zip Where Dong Like '역삼%' -- 50%

Go

 

 

--[3] SQL Server에서최고의성능향상: 인덱스

-- Dong 필드는자주검색에사용되더라... 그러면, 인덱스를걸자.

Create Index idxZip On Zip(Dong) -- 기본: NonClustered Index : 책의찾아보기(뒷부분)

Go

 

 

--[4] 아래두코드를블록잡고Ctrl + L : 예상실행계획--> 성능(비용)비교

-- %로시작해서Like절사용하면인덱스의영향을받지않는다.

Select * From Zip Where Dong Like '%역삼%' -- 60%

Go

Select * From Zip Where Dong Like '역삼%' -- 40%

Go

 

 

--[5] 인덱스를삭제

Drop Index idxZip On Zip

Go

 

 

--[6] Clustered Index로다시생성

Create Clustered Index idxZip On Zip(Dong) -- Clustered Index : 책의차례/목차()

Go

 

 

--[7] 아래두코드를블록잡고Ctrl + L : 예상실행계획--> 성능(비용)비교

Select * From Zip Where Dong Like '%역삼%' -- 99%, Index Scan(모두훑어보기)

Go

Select * From Zip Where Dong Like '역삼%' -- 1%, Index Seek(한번에찾아가기(=목차))

Go