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
운영게시판
최근게시물
PostgreSQL Q&A 9265 게시물 읽기
No. 9265
[질문] 파티션 테이블에 관한 질문입니다.
작성자
김문수(ykrgulm)
작성일
2013-04-18 09:42ⓒ
2013-04-18 09:53ⓜ
조회수
9,294

Postgresql 9.1.8을 쓰고 있습니다.

데이터량이 너무 많아 추출하는데 시간이 걸려서, 이를 해결하고자,  테이블을 일별로 파티셔닝했습니다.(1일 서브테이블, .... , 31일 서브테이블)

그 결과, 두 가지 문제가 발생했습니다.

1. 첫 번째 데이터 추출이 파티셔닝하기 전보다 훨씬 느려졌습니다.(파티셔닝 하기 전에는 1초 안에 들어왔던 추출시간이 1분으로 늘어났습니다.)

2. 3일 정도의 데이터가 쌓였을 때, 파티셔닝하기 전의 문제점은 추출하고자 하는 데이터의 저장시각에 관계없이 평균 추출시간이 0.6초 정도였습니다.(목표: 0.1초 이내)

파티셔닝을 한 후의 결과는 다음과 같습니다.

세 번째 날의 평균 추출시간: 0.15초

두 번째 날의 평균 추출시간: 0.3초

첫 번째 날이 평균 추출시간: 0.5초

파티셔닝을 하면, 각 서브테이블의 데이터량은 같으며, 인덱스 구조도 같을텐데 이와 같은 차이가 나는 이유를 찾지 못하고 있습니다.

 

위의 두 가지 해결 방안이 무엇인지 알 수 있을까 해서 글을 올리게 되었습니다.

 

부가적으로, 데이터 추출 시, 파티셔닝 테이블 체크조건을 where절에 써주어야 하는 것인가요?

써야한다면, where절에서 순서가 (마더테이블 인덱스, 파티셔닝 테이블 체크조건)인지, 아니면 (파티셔닝 테이블 체크조건, 마더테이블 인덱스)인가요?

마지막으로, 파티셔닝 테이블 체크조건이 상수하고만 매칭되는 것인지, 아니면 변수하고도 매칭될 수 있나요?

 

읽어주셔서 감사합니다. 즐거운 하루되시길 바랍니다.

 

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

 테이블을 쪼갰는 경우에는 

그 쪼개지는 조건을 select 구문에 반드시 넣어주어야

해당 테이블만 조회합니다.

 

그리고, 오라클과 달리 전역 인덱스를 사용할 수 없기 때문에, 

상위 테이블에서 전역 인덱스로 검색 하는 비용은

그냥 단일 테이블에서 조회하는 것보다 비용이 당연히 더 듭니다. 

 

테이블 쪼갠다 함은 반드시 그 조회가 쪼개진 테이블 단위로만 조회할 것이다는 것을 전제합니다. 

 

김상기(ioseph)님이 2013-04-22 11:26에 작성한 댓글입니다.

말씀하신대로 쪼개진 테이블 단위로만 조회를 하니까 이전보다 성능이 좋아졌습니다.

조언해주셔서 감사합니다~

김문수(ykrgulm)님이 2013-04-23 09:28에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9269모바일 앱(Connect to SQL)로 Pgsql 접속하기? [1]
souler
2013-04-23
9309
9268db접속이 안돼여...ㅠ.ㅠ [3]
김준형
2013-04-23
9136
9267[질문] DB 이동에 관한 질문입니다. [2]
김문수
2013-04-23
9129
9265[질문] 파티션 테이블에 관한 질문입니다. [2]
김문수
2013-04-18
9294
9264입력된 값에서 \r\n [1]
전상도
2013-04-16
8959
9263[질문] 데이터량에 따른 성능 저하에 관한 질문입니다. [2]
김문수
2013-04-15
9732
9262C 라이브러리(Libpq) 사용시 한글깨짐 [2]
ted
2013-04-11
9769
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다