2017-09-19 4 views
0

두 조의 테이블이 조인 된 조인은 이전 조인 레코드를 가져 오는 작업을 수행하는 '조건'을 갖는 내부 조인과 함께 있습니다. 테이블 중 하나에 'rowentrytimestamp'필드가 있습니다.이 필드는 레코드에 대한 행을 입력 할 때의 타임 스탬프입니다.index on rowentrytimestamp

예 검색어 :

Select table1.a, table1.b, table2.c, table2.d, table2.e, table1.f,table1.g 
from table1 inner join 
    table2 
    on table1.a = table2.a 
where table2.c in (x, y, z) and table2.rowentrytimestamp >= DateAdd(mm,-1,getDate()) 

빠른 실행을 위해이 rowentrytimestamp에 인덱스를 추가 할 수있는 좋은 선택이있다. 타임 스탬프에 인덱스를 추가 할 때 고려해야 할 것이 있습니까?

+0

호환되지 않는 데이터베이스 태그를 제거했습니다. –

답변

0

table2(b, rowentrytimestamp, a, c)에 색인을 작성하면 색인에서 조회를 처리합니다. b 또는 rowentrytimestamp이 먼저 가야하는지 여부는 어느 것이 더 선택 적인가에 달려 있습니다.

색인에 rowentrytimestamp을 추가하면 일 수도 있고이 큰 색인의 일부로 사용됩니다. 그것은 그 자체로 어떤 효과가있을 수 있습니다. 그러나 where 절에 두 가지 부등식이있는 경우 색인 사용이 다소 제한적입니다.

+0

쿼리는 지금 편집 한 table2에서 더 많은 열을 가져 오므로 table2 (c, rowentrytimestamp, a) 인덱스가 의미가 있습니까? 이미 사용 된 table2의 열에 인덱스가 이미 있습니다. – Santosh