[기타] 디비튜닝에 대한 질문과답변내용...
2010.05.12 08:26
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
오라클 DB를 점검한결과, 아래부분의 점검이 필요하다고 나왔습니다.
오라클업체에 연락을 하시어 아래부분을 점검 받으시기 바랍니다.
그리고, DB Tunning 및 analyze(최적화) 를 요청하시어 DB운영이 최적상태로 운영될수
있도록 지원요청하시면 되겠습니다.
[Segments with > 100 extents]
===========================================================================================================
== SEGMENT_TYPE OWNER SEGMENT_NAME EXTENTS PARTITION NAME ==
===========================================================================================================
!TABLE test test1 163
!TABLE test test2 150
감사합니다.
답변내용]
해당 segment(테이블명과 동일합니다)의 extents수를 dba_extents 뷰와
test1 및 조회한 결과 test2 테이블이
130만건 이상이 넘어가는 데이터들을 갖고 있으므로 문의사항과 같은
extents 수는 정상임.
만일 데이터가 많지 않은 상태에서 segment의 extents가 비정상적으로 많다면
해당 테이블을 rebuild 시켜야하나 조회결과 튜닝대상이 아님으로 판단.
조회결과.
1 select segment_name, bytes from dba_extents
2* where segment_name='test1'
SQL> conn intraware/intraware
Connected.
SQL> select count(*) from test1;
COUNT(*)
----------
1365055
[기타 사항]
SQL> desc test1;
Name Null? Type
----------------------------------------- -------- ----------------------------
HSSAVEDEPTID NOT NULL VARCHAR2(20)
UWBOXTYPE NOT NULL NUMBER(5)
HSMSGID NOT NULL VARCHAR2(20)
HSORGID VARCHAR2(20)
HSDRAFTERID VARCHAR2(20)
SZDRAFTERNAME VARCHAR2(32)
HSDRAFTDEPTID VARCHAR2(20)
SZDRAFTDEPTNAME VARCHAR2(64)
HSRECEIPTERID VARCHAR2(20)
SZRECEIPTERNAME VARCHAR2(32)
HSRECEIPTDEPTID VARCHAR2(20)
SZRECEIPTDEPTNAME VARCHAR2(64)
HSSENDID VARCHAR2(20)
SZSENDNAME VARCHAR2(32)
HSSENDDEPTID VARCHAR2(20)
SZSENDDEPTNAME VARCHAR2(64)
HSBROADERID VARCHAR2(20)
SZBROADERNAME VARCHAR2(32)
HSBROADDEPTID VARCHAR2(20)
SZBROADDEPTNAME VARCHAR2(64)
HSDAMDANGID VARCHAR2(20)
SZDAMDANGNAME VARCHAR2(32)
HSASSID VARCHAR2(20)
SZASSNAME VARCHAR2(32)
HSPARENTDEPTID VARCHAR2(20)
SZPARENTDEPTNAME VARCHAR2(64)
HSCONTROLLERID VARCHAR2(20)
SZCONTROLLERNAME VARCHAR2(32)
HSLASTSIGNERID VARCHAR2(20)
SZLASTSIGNERNAME VARCHAR2(32)
SZFORMNAME VARCHAR2(100)
HSPASSDEPTID VARCHAR2(20)
등....
데이터타입에 BLOB이나 CLOB (대용량 파일을 지원하는 데이터타입) 이 없으므로
추후 리빌드가 필요할 때에 작업하는데에도 문제가 없는것으로 진단.
[TIP] 테이블 리빌드 하는 방법
해당 유저에서
alter table 테이블명 move tablespace 해당테이블스페이스이름;
--> 테이블을 다시 같은 위치로 옮기라는 뜻이며 이 과정을 거침으로써
쓸데없이 늘어난 extents 등을 재조정할 수 있음.
단, 테이블의 데이터타입에 BLOB 이나 CLOB 과 같이 대용량데이터를 지원하는
타입이 선언된 경우라면 리빌드 불가.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
오라클 DB를 점검한결과, 아래부분의 점검이 필요하다고 나왔습니다.
오라클업체에 연락을 하시어 아래부분을 점검 받으시기 바랍니다.
그리고, DB Tunning 및 analyze(최적화) 를 요청하시어 DB운영이 최적상태로 운영될수
있도록 지원요청하시면 되겠습니다.
[Segments with > 100 extents]
===========================================================================================================
== SEGMENT_TYPE OWNER SEGMENT_NAME EXTENTS PARTITION NAME ==
===========================================================================================================
!TABLE test test1 163
!TABLE test test2 150
감사합니다.
답변내용]
해당 segment(테이블명과 동일합니다)의 extents수를 dba_extents 뷰와
test1 및 조회한 결과 test2 테이블이
130만건 이상이 넘어가는 데이터들을 갖고 있으므로 문의사항과 같은
extents 수는 정상임.
만일 데이터가 많지 않은 상태에서 segment의 extents가 비정상적으로 많다면
해당 테이블을 rebuild 시켜야하나 조회결과 튜닝대상이 아님으로 판단.
조회결과.
1 select segment_name, bytes from dba_extents
2* where segment_name='test1'
SQL> conn intraware/intraware
Connected.
SQL> select count(*) from test1;
COUNT(*)
----------
1365055
[기타 사항]
SQL> desc test1;
Name Null? Type
----------------------------------------- -------- ----------------------------
HSSAVEDEPTID NOT NULL VARCHAR2(20)
UWBOXTYPE NOT NULL NUMBER(5)
HSMSGID NOT NULL VARCHAR2(20)
HSORGID VARCHAR2(20)
HSDRAFTERID VARCHAR2(20)
SZDRAFTERNAME VARCHAR2(32)
HSDRAFTDEPTID VARCHAR2(20)
SZDRAFTDEPTNAME VARCHAR2(64)
HSRECEIPTERID VARCHAR2(20)
SZRECEIPTERNAME VARCHAR2(32)
HSRECEIPTDEPTID VARCHAR2(20)
SZRECEIPTDEPTNAME VARCHAR2(64)
HSSENDID VARCHAR2(20)
SZSENDNAME VARCHAR2(32)
HSSENDDEPTID VARCHAR2(20)
SZSENDDEPTNAME VARCHAR2(64)
HSBROADERID VARCHAR2(20)
SZBROADERNAME VARCHAR2(32)
HSBROADDEPTID VARCHAR2(20)
SZBROADDEPTNAME VARCHAR2(64)
HSDAMDANGID VARCHAR2(20)
SZDAMDANGNAME VARCHAR2(32)
HSASSID VARCHAR2(20)
SZASSNAME VARCHAR2(32)
HSPARENTDEPTID VARCHAR2(20)
SZPARENTDEPTNAME VARCHAR2(64)
HSCONTROLLERID VARCHAR2(20)
SZCONTROLLERNAME VARCHAR2(32)
HSLASTSIGNERID VARCHAR2(20)
SZLASTSIGNERNAME VARCHAR2(32)
SZFORMNAME VARCHAR2(100)
HSPASSDEPTID VARCHAR2(20)
등....
데이터타입에 BLOB이나 CLOB (대용량 파일을 지원하는 데이터타입) 이 없으므로
추후 리빌드가 필요할 때에 작업하는데에도 문제가 없는것으로 진단.
[TIP] 테이블 리빌드 하는 방법
해당 유저에서
alter table 테이블명 move tablespace 해당테이블스페이스이름;
--> 테이블을 다시 같은 위치로 옮기라는 뜻이며 이 과정을 거침으로써
쓸데없이 늘어난 extents 등을 재조정할 수 있음.
단, 테이블의 데이터타입에 BLOB 이나 CLOB 과 같이 대용량데이터를 지원하는
타입이 선언된 경우라면 리빌드 불가.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
115 | 온라인 백업/리스토어 (imp/exp) | 조인상 | 2010.05.09 | 12786 |
114 | 아카이브 모드로 변환하기 | 조인상 | 2010.05.12 | 12791 |
113 | OS재설치 후 오라클 복구(솔라리스) | 조인상 | 2010.05.12 | 6781 |
112 | 백업에 관한 조언 | 조인상 | 2010.05.12 | 5184 |
111 | 필수로 암기해야 할 view 들... | 조인상 | 2010.05.12 | 5750 |
110 | 오라클 뷰들... | 조인상 | 2010.05.12 | 5908 |
109 | 9i 에서의 언두세그먼트 관리 | 조인상 | 2010.05.12 | 7343 |
108 | 오라클 재시작시에 롤백세그먼트 OFFLINE | 조인상 | 2010.05.12 | 5785 |
107 | 오라클 버전업 후 exp할때 ORA-00904에러 | 조인상 | 2010.05.12 | 10451 |
106 | 아카이브 로그 강제로 생성하는 명령어 | 조인상 | 2010.05.12 | 10831 |
105 | 오라클 패치 후 export가 안된다! [1] | 조인상 | 2010.05.12 | 10850 |
104 | control file 재생성하기 | 조인상 | 2010.05.12 | 11675 |
103 | 온라인 백업방법 begin~end backup | 조인상 | 2010.05.12 | 20689 |
102 | 64비트 Solaris에 오라클 9.2.0 설치 하기 | 조인상 | 2010.05.12 | 10527 |
101 | 처음 오라클 설치시 SGA 영역크기 정하는 규칙 | 조인상 | 2010.05.12 | 8351 |
100 | 오라클에 접속하는 최대 인스턴스개수(세션개수)를 늘리는 방법 | 조인상 | 2010.05.12 | 7150 |
99 | 인텔 펜티엄4 기반 Windows에 설치시 오류에 대해서 | 조인상 | 2010.05.12 | 5797 |
98 | 오라클 8.1.7 -> 7.3.4 로 DB data 이전 | 조인상 | 2010.05.12 | 6923 |
97 | 캐릭터셋 변경방법 | 조인상 | 2010.05.12 | 7358 |
» | [기타] 디비튜닝에 대한 질문과답변내용... | 조인상 | 2010.05.12 | 5718 |