안녕하세요.
오라클클럽에서 항상 많은 도움을 받고 있네요. 감사합니다.
질문이 하나 있어서 문의 드리겠습니다.
제 머리로는 좋은 해결법이 안나오네요..^^;
간단히 쿼리문을 먼저 보여드릴께요.(일 부분 입니다.)
SELECT IP
, CASE WHEN (SELECT COUNT(*)
FROM TABLE_1 B
WHERE B.DATE > A.DATE
AND B.IP = A.IP) > 0 THEN '0'
ELSE '1'
END CHK_IP
FROM TABLE_1 A
음.. 이해가 가실지 모르겠네요.
먼저 원래 쿼리의 일 부분이라는 걸 말씀드리며
설명을 드리자면 해당 IP가 이전에 접속을 했었는지 확인을 해서 값을 '1' 또는 '0'으로 INSERT를 합니다.
위에 방법과 같이 하면 결과는 나오지만 데이터가 많을 경우 속도가 많이 느려 지더라구요.
해당 테이블에는 적지 않은 데이터가 들어 있습니다. 약 2천만건정도 입니다. 앞으로도 계속 증가를 합니다.
위에 내용에서 해당 날짜 보다 이전에 한번이라도 들어왔는지만 체크를 하면 되는데 지금과 같은 방법은
이전 데이터를 계속해서 조회를 하게 되어 있습니다. 그래서 시간적으로 많이 소요가 되는 것으로 보입니다.
제 머리에서는 방법이 안 나오네요....
어떠한 방법으로 해결을 하면 좋을 지 도움 요청 드립니다.^^