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 40148 게시물 읽기
No. 40148
Partition Table 사용시 속도 저하 문제
작성자
이철재(joveis)
작성일
2013-05-29 19:36
조회수
6,957

DB는 Oracle 10g를 사용하고 있고요.

한개의 테이블이 데이타 량이 너무 많아 월기준으로 Partition을 생성하여 관리 하고 있습니다.

Partition 생성 조건은 매월 1일 다음달의 Partion을 생성하고

Analize는 매주 일요일 새벽 시간에 실행이 됩니다.

 

문제점은 이번달의 경우 5월분 Partition은 4월1일에 생성이 되었고

4월 28일에 Anlayze가 실행이 되었는데

5/1일은 휴무라서 데이타가 발생되지 않았고

6월 파티셔만 생성 하였습니다.

 

이 경우 5/2일 데이타를 생성해서 입력 하는 도중에 

Select 및 Insert 문에서 처리 속도가 확연하게 떨어져서 결국 DB Lock이 발생하였고

5/2일 저녁에 Anlayze를 재 실행 한 후 정상적으로 돌아 왔습니다.

 

문제가 발생 한 쿼리의 Plan을 떠보면 Anlayze을 실행 하기 이전에는 Index를 재대로 못타는 현상이 보였으며

Analyze 실행 후 정상 적으로 Index를 태워서 문제가 해결 되었습니다.

 

이런 경우 해결 방법이 어떤게 있을까요.

이제 곧 다시 월초가 되어 또 발생을 하지 않을까  심히 걱정이 됩니다.

 

많은 조언 부탁드립니다.

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

예를들어, 매월 7일에 (다음달의 partition을 생성하고) 이번달의 partition 통계를 dbms_stats.copy_table_stats로 다음달에 미리 복사하는 방법을 생각해 보세요.

 

Analyze 대신에 gather_table_stats를 써서 (지난 일주일이 지난달을 포함할 경우, 지난달 partition 과) 이번달 partition 들의 통계를 계산하고 이번달의 partition 이 비어 있으면 통계를 구하지 않도록 해야 할것 같읍니다.

 

copy_table_stats는 11g document에 설명이 나와 있고 10g 부터 쓸수 있읍니다.

hopper(bunny)님이 2013-06-02 13:28에 작성한 댓글입니다.
이 댓글은 2013-06-03 00:50에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
40151오라클 RAC ODBC 등록방법
완전초보
2013-06-05
6519
40150프로시저 작업 스케줄러 등록하기
초보자
2013-05-30
6682
40149그룹별 번호주기 ? [5]
궁금해요
2013-05-29
8625
40148Partition Table 사용시 속도 저하 문제 [1]
이철재
2013-05-29
6957
40147여러 row의 데이터를 구분자로 한줄로 뽑고 싶습니다... [4]
짱아
2013-05-29
9149
40146대형 프로젝트에서 DB 구조...
홍순우
2013-05-27
6523
40144유니크하고 랜덤한 일련번호 처리 [4]
초심
2013-05-24
7338
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다