두 테이블 모두 sql 2005에 파티션 테이블을 이용했습니다.
하루단위로 파이션 테이블이 만들어 지고요
테이블1 f_date (키)
테이블2 f_date (키)
select a.* from 테이블1 a, 테이블2 b
where
a.f_date >= '2007-07-28' and a.f_date < '2007-07-29' -- 테이블1 파티션 범위 설정
and b.f_date >= '2007-07-28' and b.f_date < '2007-07-29' -- 테이블2 파티션 범위 설정
and a.f_date >= dateadd(second, b.f_date, 30*60) and a.f_date <= b.f_date -- 다음 시간사이에 오도록 범위를 설정했습니다
문제는 microsoft sql server management stduio 에서는 5초면 나오니다..
근데 일반 프로그램 c#이나 프로시저 안에서 돌리면 끝이 안납니다. 아마 플스캔 하는것 같습니다....
프로파일러로 보니까 stduio에서 실행 하는거 hash matching 하는데 c#이나 프로시저로 돌리면
hash matching이 안 일어나더구요.
똑같은 쿼리를 돌렸는데 이런 현상이.................
제발 조언 부탁드립니다
|