QUERY PLAN FOR STATEMENT 1 (at line 1).
STEP 1 The type of query is SELECT.
FROM TABLE t_ndetails_0428 Nested iteration. Table Scan. Forward scan. Positioning at start of table. Using I/O Size 2 Kbytes for data pages. With LRU Buffer Replacement Strategy for data pages.
Parse and Compile Time 0. SQL Server cpu time: 0 ms. Table: t_ndetails_0428 scan count 1, logical reads: (regular=13786 apf=0 total=13786), physical reads: (regular=0 apf=0 total=0), apf IOs used=0 Total writes for this command: 0 Execution Time 0. SQL Server cpu time: 0 ms. SQL Server elapsed time: 326 ms. (1656 rows affected) 이런식으로 나옵니다... plan을 봐서는 인덱스를 안탄것 같은데요... 왜 인덱스를 안타나요??? 안타는 이유좀 설명 부탁드립니다... 그리고 틀렸다면 설명와 타게 하는 방법좀 부탁드립니다.. 꾸벅~ 감사합니다.
인덱스를 만들었다고 무조건 인덱스를 사용하지는 않습니다. 그 판단은 옵티마이저가 비용 계산을 하게 됩니다. (순식간이죠) 데이터가 많지 않을 경우는 그냥 full scan하는 것이 빠르다고 옵티마이저가 판단합니다. 인덱스를 강제로 타게 하려면 select * from t_ndetails_0428 (index f_uq_datetimepid ) where f_call_date='2006-04-29' and f_call_time > '11:00:00' and f_call_time<'23:00:00' and f_call_pid= '112359' 처럼 괄호 안에 인덱스명을 주거나, 내부적으로 관리하는 인덱스 id를 주면됩니다. (0은 데이터, 1은 클러스터드 인덱스 2이상은 non-clustered index입니다.)