asp + mssql2000 입니다.
웹사이트의 접속자 통계를 위해서 global.asa에서 디비에 접속정보를
저장합니다.
문제는 세션으로 처리하기 때문에 같은 아이피에서 시간 텀을
두고
다시 방문할 경우 또 insert가 일어나죠.
그래서 같은날, 같은 아이피인경우 이를 삭제해 버릴려고 하는데
100.100.100.1 / 2005-05-05
100.100.100.1 / 2005-05-05
(->얘를 삭제해야 합니다.)
100.100.100.1 / 2005-05-06
이 쿼리를 다음과 같이 만들었습니다.
DELETE user_log WHERE code
NOT IN (SELECT min(code)
FROM user_log GROUP BY ip,left(log_time,10))
필드 설명: code(int, 고유번호), ip(varchar, 아이피), log_time(datetime, 접속시간)
이렇게 해도 되긴 되는거 같은데....
뭔가 효율적인 쿼리가 아닌듯 합니다.
그래서 고수님들이 이 쿼리를 upgrade 해주셨으면 해서요...
접속테이블인 user_log에 무지 무지 많은 데이터가 있거든요.^^;
위의 쿼리로는 시간이 상당히 많이 걸릴거 같은데...서버의 부하도
걱정이 되구요.
|