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
운영게시판
최근게시물
Oracle Q&A 39100 게시물 읽기
No. 39100
테이블 관련 많이 부끄러운 질문 입니다.
작성자
안준용(realbach)
작성일
2011-11-15 21:36
조회수
4,646

 

오라클이 엔터프라이즈급이 아니여서 파티션 테이블을 사용 할 수 없습니다.

그래서 테이블을 아주 작게 분리 하여 로그성 테이터를 저장할 생각 인데요,

보관 기간으로 계산해보니, 204228 개의 테이블을 생성 해 주어야 하는군요. (뜨악 ㅜ.ㅜ)

Oracle에서 테이블 수 Limits을 찾아 보니 unlimit 던데요,

이렇게 무식하게 테이블을 많이 만들어서 사용 해도 성능에 지장 없을 까요? 

 

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

성능이 문제가 아니라....관리를 어떻게 하느냐가 문제죠. 너무 많으면 관리하기 어렵습니다.

 

보통 파티션 기능이 없을 경우... 그리고 보관주기 설정이 가능할 경우 다음과 같은 방법을 흔히 사용합니다.

보관주기 1년, 월 단위 데이터 관리

 

1월,2월,3월~12월 로 테이블을 12개 만듭니다.  1월일 때 해당 테이블을 최초 truncate한 후 데이터를 입력합니다. 2월이 되면 2월 테이블에 데이터를 넣습니다. 1년이 지나서 해를 넘기면 다시 1월 테이블을 Truncate 한후 데이터를 넣습니다. (필요하면 백업 받고 truncat할 수도 있겠죠.)

delete로 삭제하지 않는 이유는 데이터량이 많은 경우 DB에 많은 부하를 주기 때문입니다. 물론 Undo 사용량도 많아지게 됩니다.

 

이 경우 테이블명이 계속 변해야 하므로 mylog_m1, mylog_m2 .... dynamic Query로 작성해야하고 쿼리 복잡도가 올라가는 불편함이 있지만 단순 로그성일 경우에는 유효한 방법입니다.

 (쿼리를 단순하게 하기 위해 View를 활용하는 방안도 강구하시기 바랍니다.)

 

보관주기가 없어서 영구보관을 해야 한다면... 변경 조회가 빈번한 최근 1년치 데이터만  월 단위로 12개 테이블로 운용하시고... 1년 이전 데이터는 1개의 통 테이블에 관리하시면 테이블 개수를 13개로 관리할 수 있습니다. 옛날 데이터는 단순보관용이고 조회나 변경이 일어날 가능성이 거의 없기 때문이죠.

아무거나님이 2011-11-18 11:16에 작성한 댓글입니다.
이 댓글은 2011-11-18 11:21에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39103쿼리 속도 개선 좀 부탁합니다. [1]
박진경
2011-11-16
4991
39102어떻게 하면 될까요? [1]
???
2011-11-16
3610
39101계층적데이터 산출!! 도와주세요~~ [1]
박용선
2011-11-16
4197
39100테이블 관련 많이 부끄러운 질문 입니다. [1]
안준용
2011-11-15
4646
39098VARRAY에 대해서 질문 드리겠습니다. [1]
김충현
2011-11-14
3372
39097database vs tablespace [2]
우태열
2011-11-14
4024
39096로컬디비 설치 방법 문의 드려요.. [1]
신동화
2011-11-14
3333
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.015초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다