37. 인덱스(Index)의 효과 - 인덱스 사용에 따른 성능(속도) 비교.
--[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