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 4374 게시물 읽기
No. 4374
1억 건의 데이타 조회- 구조/어떻게 해야 좋을까요?
작성자
고민중
작성일
2008-07-31 23:02ⓒ
2008-08-01 11:33ⓜ
조회수
4,969


운영체제 : Windows 2003

SQL Server : 2000



유저가 어떤 행위를 할 때마다 로그를 남기고 있습니다.

예를 들어서 로그인했다. 어떤 물건을 얼마에 샀다. 

어떤 물건을 팔았다. 등등 


이렇게 매번 이벤트에 대해서 로그를 남기다 보니. 데이타 양이 어마 어마 하게 많아요..

특히 테이블 5개의 데이타를 합해서 1억 건이 넘는데요...


event

event1

event2

event4

event5


이렇게 5개의 테이블의 경우 각각의 테이블들은

date, userid 라는 두개의 필드가 클러스트 인덱스로 잡혀 잇습니다.

date 는 정렬을 내림차순으로 했구요..


문제는 유저가 행위를 할때마다 각각의 조건에 따라서 데이타에 그 로그가 insert 되고요 

로그인은 event 테이블에 

물건을 살 때는 event1 테이블에 insert

물건 팔 때는 event2 테이블에 insert

이런식으로.. 


이렇게 테이블에 insert 만 되면 되는데.. 

이 데이타를 자주 조회하게 되요.. 

select 할 때 with (readuncommitted) 옵션을 주고 조회하긴 하는데요. 


위의 5개의 테이블의 한꺼번에 조회할 필요가 있어서 view 로 연결해 놓았습니다.

그런데..

eventview 라는 테이블을

select * from eventview 라고 해서 조회하면

date 에 의해 내림차순으로 정렬이 되지 않습니다.

order by 구문을 써주면 되긴 하지만.

데이타가 너무 많아서 order by 절을 쓰면 쿼리 속도가 많이 느려 지거든요.. 


문제는 조회를 할 때 lock 이 걸려요.. 

그래서 유저가 액션을 취할 때.. 물건을 살때도 처리가 느려지게 되고.. 

그러다 보면... 그때 프로필러를 돌려보면.. duration 이 엄청나요... 

그래서 가끔 데이타가 꼬이기도 하는거 같고...


view 에 있는 데이타가 날짜에 의해 내림차순으로 정리되게 할 수는 없을까요?

order by 구문을 안쓰고요.

--> 이 질문 하나랑요.


혹시 위와 같이 데이타가 많고 그 데이타를 자주 조회할 경우

더 효율적인 구조가 있을까요???


event 테이블에 트리거를 걸어서 event 테이블에 insert 될때마다 

event_bak 테이블에 insert 되게 하고 

조회는 event_bak 테이블을 통해서 하게 된다면.. 

유저가 행위할 때 lock 에 의해서 처리가 늦어 지는 일이 발생 안할까요???




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

date 컬럼을 인덱스를 걸고 인덱스 정렬순서를 내림차순으로 하시면 됩니다.


그런후 


select * from table( 인덱스명 ) 이렇게 인가 ^6 from (인덱스명) 테이블인가


이렇게 하셔서 그 인덱스를 타게 하시면 됩니다.


그럼

김병석(byung82)님이 2008-08-01 20:57에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4377mssql 2000 에서 원격으로 DB를 가져왔는데 local로 안되요 [1]
김동진
2008-08-03
4454
4376TOP을 이용한 page 분할 [1]
이달형
2008-08-01
4848
4375DB 복원 하는 방법 가르켜 주세요 [3]
서성진
2008-08-01
4854
43741억 건의 데이타 조회- 구조/어떻게 해야 좋을까요? [1]
고민중
2008-07-31
4969
4373도서검색처럼 구현 [2]
김경원
2008-07-31
4734
4371윈도우서버에 MSSQL? 아니면 MYSQL? [2]
사슴
2008-07-31
4999
4370특정테이블에 조회(select)한 로그를 남기고 싶어요. [1]
Kaien
2008-07-31
4813
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다