#인덱스

yous3163yous3163· 6년

질문인덱스를 타지않는 쿼리

인덱스를 타지 않는 쿼리로 다음과 같은 경우가 있는데  테스트결과 빨간색의 경우에는 확인을 하였습니다. 하지만 초록색의 결과는 실행계획을 확인해보았을 때 인덱스를 타는걸로 보여지는데 왜 그럴까요..?   -LIKE ‘%문자열%’로 검색하는 경우 SELECT * FROM TGOLFZON WHERE UserName = ‘%곽%’ -> UserName = ‘곽%’   -조건 절에 IS NULL , IS NOT NULL 구문을 사용하는 경우   -부정 연산자(!=,<>,NOT IN, NOT EXISTS)를 사용하는 경우 NOT일 경우 무조건 인덱스를 안타는 것이 아니라 타지만 일반적으로 NOT에 사용된 값이 아닌 데이터 비율이 높은 경우가 많기 때문에 인덱스를 타지 않는다.   -내부적인 데이터 형이 변경될 경우 SELECT * FROM TGOLFZON WHERE UserNo = ’33’ -> UserNo= 33   -OR 구문을 사용하는 경우 INDEX FULL SCAN 을 타게 됨   -인덱스 컬럼 절이 변경될 경우 SELECT * FROM TGOLFZON WHERE CashAmt * 100 > 10000 -> CashAmt = 10000/100
3.0K
1
0
kimho
kimho·2019-05-10
MS SQL에서는 NULL도 인덱싱이 될 수 있습니다.  
yous3163yous3163· 6년

질문클러스터드, 논클러스터드 인덱스 생성 순서

어떤 것을 먼저 생성해야하고, 이유에 대해 아시는분 계신가요?
1.9K
2
0
yous3163
yous3163·2019-05-08
자문자답이 된거 같지만 찾아서 공유드립니다. 결과론 적으론 두 개의 인덱스를 혼합할 경우 구조는 같다. 클러스터드와 넌클러스터드 인덱스를 같이 사용할 경우에는 넌클러스터드 인덱스가 가리키는 위치가 클러스터드 인덱스의 키 값을 가지게 된다. (만약 클러스터드형 인덱스가 없었다면 넌클러스터드 인덱스가 가리키는 위치는 ‘데이터페이지번호 + #...
·2019-05-08