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 1944 게시물 읽기
No. 1944
Oracle Tuning Approach
작성자
지나가는 이
작성일
2000-11-04 11:15
조회수
5,575

Oracle튜닝 어프로치

 

오픈 시스템에서 많이 사용되는 「Oracle」에 대해 동작 특징 및 튜닝 포인트를 소개합니다.

 

◆Oracle성능 현상

 

◎신 시스템 가동후 Oracle이 고부하인 점에 놀라는 고객이 많다.

◎조사해 보면 대량 CPU시간을 Oracle이 사용하고 있다.

◎CPU사용 시간과 일관성 읽기 횟수(컨시스턴트GET)가 높은 상관이 있다.

 

◆데이터베이스 구조

 

세그먼트 단위로 관리되고 이하 4종류가 준비되어 있다.

 

데이터 세그먼트 : 데이터베이스 데이터 유지

인덱스 세그먼트 : 데이터 세그먼트 액세스 고속화를 위한 인덱스 정보 기록

임시 세그먼트 : SQL처리에 필요한 워크역 제공

롤백 세그먼트(RBS) : 데이터베이스 갱신전 정보를 기억하고 롤백 처리와 일관성 읽기 처리에 사용

 

◆optimizer

 

목적 블록의 고속 액세스를 위해 처리 SQL에 연산식을 간소화 하는 등 최적화하는 optimizer 기능이 준비되어 있다. 또 optimizer 최적화 logic은 이하 룰 베이스와 코스트 베이스 2가지가 준비되어 있다.

 

룰 베이스 : 경험칙에 의해 가장 효율적인 access path가 선택된다. 유의점으로 장래는 룰 베이스는 지원되지 않을 가능성이 있다.

 

코스트 베이스:ANALYZE코맨드로 데이터베이스 내용을 검사하여 통계 데이터가 작성된다. 이 통계 데이터를 기초로 최적 access path가 결정된다. 유의점으로 갱신 빈도가 높은 데이터베이스의 통계 데이터는 빈번하게 갱신될 필요가 있다.

 

◆일관성 읽기와 RBS(롤백 세그먼트)

 

일관성 읽기:읽기 개시때 데이터베이스 이미지 처리를 보증하는 기능으로, 예를 들면 오전9 시 백업 처리 개시 경우 9시시점의 데이터베이스 정보를 읽는 것이 가능한것으로, 갱신전 이미지는 RBS로부터 정보를 얻는다. 이 때 운나쁘게 RBS내에 갱신전 이미지가 발견되지 않으면 ORA-1555에러가 발생한다. 또 유의점으로 일관성 읽기 횟수(컨시스턴트GET횟수)와 CPU사용율은 높은 상관이 있고 CPU사용율을 높이는 요인이 되고 있다.

 

RBS(롤백 세그먼트):앞의 일관성 읽기나 롤백 처리(데이터베이스 갱신 후 그 갱신의 무효 처리)를 원활히 하기 위해 RBS가 준비되어 있다. 데이터베이스 갱신이 완료될때까지 그 갱신 블럭의 갱신전 이미지는 RBS에 기록되고 RBS 기록은 순환 방식으로 되고 있다. 또 RBS는 필요에 따라 자동적으로 extent수를 조정하는 기능을 가지고 있으나 최대 extent수를 설정하는 MAXEXTENTS를 넘는 경우 ORA-1555에러가 발생한다.

 

◆튜닝 포인트

 

Oracle 성능을 크게 좌우하는 것이 데이터 버퍼 크기로서 각종 버퍼가 효율적으로 사용되고 있는가? 또 용량 부족은 아닌가를 확인할 필요가 있다.

 

optimize 처리는 룰 베이스로 하는가? 코스트 베이스로 하는가를 결정한다.

 

일관성 읽기(컨시스턴트GET)는 CPU를 대량 사용한다.

 

ORA-1555에러 발생은 처리 시간과 시스템 자원 낭비뿐 아니라 롤백 정보에 기록 하는 트랜잭션의 이상 종료를 초래하고 성능을 저하시킨다.

이 때문에 ORA-1555에러 발생이 RBS용량 부족때문 인가, RBS내 갱신전 이미지 부재때문인가를 조기에 구분하는 것이 중요하다.

 

여러SQL처리에서 하나의 RBS를 액세스하면 성능을 악화시킨다.

[Top]
No.
제목
작성자
작성일
조회
1948급합니다..갑자기 연결이 안됩니다.
김정우
2000-11-06
4067
1950┕>Re: 급합니다..갑자기 연결이 안됩니다.
김규태
2000-11-06 11:03:46
4192
1947oracle용 웹보드는 없나요??
heizel
2000-11-06
3591
1951┕>Re: oracle용 웹보드는 없나요??
hiten
2000-11-06 11:28:31
4055
1945[질문]linux용 oracle8.0.5에서 win2000용 oracle8.1.6으로 exp=>imp에서 에러..
송대용
2000-11-05
3678
1959┕>Re: [질문]linux용 oracle8.0.5에서 win2000용 oracle8.1.6으로 exp=>imp에서 에러..
문승재
2000-11-06 16:22:41
4128
1944Oracle Tuning Approach
지나가는 이
2000-11-04
5575
1940뷰에 관한 질문입니다.
^ㅠ^
2000-11-03
4307
1949┕>Re: 뷰에 관한 질문입니다.
김규태
2000-11-06 10:59:33
4374
1939어떻게 NULL을 select 할수 있죠??
김상무
2000-11-03
3974
1941┕>Re: 어떻게 NULL을 select 할수 있죠??
지나가는이
2000-11-03 17:58:04
4349
1942┕>Re: 어떻게 NULL을 select 할수 있죠??
정재익
2000-11-03 18:44:51
4513
1938날짜 관련, delete 쿼리가 안먹혀요.
배재원
2000-11-03
5083
1943┕>Re: 날짜 관련, delete 쿼리가 안먹혀요.
이경록
2000-11-03 23:36:47
4676
1956 ┕>Re: Re: 날짜 관련, delete 쿼리가 안먹혀요.
배재원
2000-11-06 14:50:07
4849
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다