database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 1956 게시물 읽기
No. 1956
접속통계 산정시 중복 아이피 삭제하는 쿼리
작성자
수정낭자
작성일
2005-05-12 21:05ⓒ
2005-05-13 11:16ⓜ
조회수
2,784

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에 무지 무지 많은 데이터가 있거든요.^^;

 

위의 쿼리로는 시간이 상당히 많이 걸릴거 같은데...서버의 부하도 걱정이 되구요.

이 글에 대한 댓글이 총 1건 있습니다.

삭제하지 마시고..

애초에 입력이 안되도록 해주세요..

그게 쉬울 듯 하네요..

아래와 유사한 형태가 되겠죠...

 

insert into user_log

(....)

select ....

where not exists

      (select 'x'

       from user_log

       where ip = :입력할IP

       and log_time like left(:새로입력할로그타임, 10) + '%')

 

기존 자료 삭제는

 

DELETE user_log

FROM (SELECT ip, left(log_time,10) log_time,

                        Min(log_time) min_log_time

           FROM user_log

           GROUP BY ip, left(log_time,10) ) A

where user_log.ip = a.ip

and user_log.log_time like a.log_time + '%'

and user_log.log_time > a.min_log_time 

 

이정도면 되지 않을까요?

근데 code는 어떤 것인지.. 그것도 키인가요?

 

m님이 2005-05-13 14:48에 작성한 댓글입니다.
이 댓글은 2005-05-13 14:58에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1959C#.Net과 ms-sql server 2000을 연동하는 방법좀....
쿄쿄
2005-05-17
1760
1958sql오류 14274
백영훈
2005-05-17
1802
1957MS_SQL에서 oracle로 데이터 이동하기 [2]
MS_SQL
2005-05-16
4825
1956접속통계 산정시 중복 아이피 삭제하는 쿼리 [1]
수정낭자
2005-05-12
2784
1955SP에서 CURSOR사용하면서 TEMP TABLE꼬이는 문제. [1]
박상면
2005-05-12
2572
1954clustered index, nonclustered index [2]
voy
2005-05-12
2731
1952오류좀 보아주세요..급합니다.. [1]
웬수
2005-05-11
1624
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다