sp내에서 #temp table를 생성하고 UPDATE, INSERT를 Join으로 처리하기 위하여
temp table에 index를 생성했는데 plan에는 index를 타지 않고, table scan을 하네요 ..
원래 #temp table에는 인덱스가 먹지 않는지 아니면 방법이 틀렸는데 아시는분 리플 부탁드립니다.
데이타가 많은 경우 당연히 temp에도 index를 사용합니다.
다만 index를 타지 않는 경우는 몇가지가 있습니다.
1. table건수가 몇건 안될때
2. where substrings(a,1,4)='1111'등 조건절에 function등을 사용한경우
3. 검색조건이 index항목이나 composite index인경우 2번쨰 항목인경우
예를 들면 clustered index a_cind on a(1,2)인데
where b='kkk' 이렇게 하면 showplan은 index를 탄다고 되어 있으나 실제는 table scan과 같은 효과입니다.
4. like '%가나%' 이런식으로 사용하였을때
5. where a.a*= b.a등으로 사용하였을때
6. 기타 여러가지가 있을수 있습니다.