DJ메탈짱™의 Free Style

[MS-SQL] 수칙2. 적절한 WHERE 조건을 사용하는가? 본문

일(job)/DBMS

[MS-SQL] 수칙2. 적절한 WHERE 조건을 사용하는가?

뽀&쏭 2016. 1. 15. 17:23



SQL Server 2000 성능 향상을 위한 튜닝 가이드

수칙2. 적절한 WHERE 조건을 사용하는가?

인덱스란 데이터를 빨리 찾기 위해서 사용됩니다. 인덱스가 없다면 특정 데이터를
찾기 위해서 모든 데이터 페이지를 검색(Table Scan)해야만 합니다 그에 비해 인
덱스가 존재하고 그 인덱스가 사용되는 것이 효과적이라면 SQL 서버는 해당 인덱
스 페이지를 사용하여 쉽게 데이터를 가져올 수 있는데 이를 인덱스 검색(Index
Seek)이라 합니다.


그러나 이렇게 인덱스가 있더라도 이를 사용 불가능하게 하는 나쁜 쿼리가 있으
니 이는 검색 조건에서 불필요하게 칼럼이 변형된 경우입니다. 다음의 여러 나쁜
예를 좋은 예와 비교해 봅시다.


SARG(Search Argument)란 쿼리가 반환하는 결과를 제한하기 위하여 옵티마이
저가 인덱스와 결합해서 사용할 수 있는 쿼리내의 조건절을 말하는데 다음의 형
태를 가집니다.


||| 컬럼 연산자/변수 |||


옵티마이저가 쓸모있게 변환하는 것은 CTRL+K 실행 계획 상부 표시에서 관찰할
수 있습니다.