Oracle Tip 게시판
오라클 Tip 게시판 입니다. - 글이나 덧글 작성이 불가하며 검색용도로만 이용 가능합니다.
글 수 190
otn 포럼에서 tunnel님이 적은 글입니다. 도움이 될것 같애서..
내용 막연한 질문이지만 데이타를 집계하는 작업을 하면 데이터베이스를 사용하는 다른 실의
프로그램이 굉장히 느려집니다. 집계하는 과정에서 select와 insert가 많이 일어나거든요.
ini화일은 거의 default 입니다. 다만 롤백세그먼트만 몇개 추가된 상태입니다. 무슨무슨 원인이
있을까요. NT 에 512M 입니다.
똑같은 서비스를 하는 다른곳에서는 같은 작업을 해도 다른실은 느려지지 않은걸봐서 sql문은
괞찬은것 같습니다.
내용 1. 메모리가 작다.
==> SGA를 늘려준다.
==> sort_area_size를 늘려준다. 이 값보다 큰 sort 작업의 경우 temp tablespace에 temporary
segment를 생성하게 되므로 기본값인 64K보다 크게 만들어 주면 (1메가 이상) 속도를 올려줄
수 있을 것이다.
2. disk에 대한 performance를 올리고 싶다.
==> RAID구성이 가능하다면 RAID 0 로 구성해서 속도를 올릴 수 있음
==> checkpoint가 너무 자주 일어남(alert.log에 checkpoint not complete 등의 메시지가 자주
나옴) log_checkpoint_interval을 충분히 크게 하여(999999999) 이를 무시하게끔 하고
log_checkpoint_timeout을 0으로 설정하여 시간에 의한 checkpoint를 못하게끔 한다. 그리고
redo log file size를 크게 하여 log switch에 의한 checkpoint 횟수를 줄이게끔 한다.
3. row chaining
==> 적절한 pctfree, pctused를 설정하여 row chaining 이나 row migration등이 일어나지 않도
록 한다.
4. MTS
==> 세션이 가장 많을 때(v$resource_limit)를 계산해서 그렇게 많지 않다면 MTS를 결코 쓰지
않는다.
5. extents
==> db내 extent의 사이즈를 전체적으로 통일하고 어떠한 segment라도 100개 이상의 extent를
갖지 않도록 한다. 특히 temp tablespace의 default storage 내 initial 과 next를 1M 이상으로
하고 pctincrease는 어느 테이블스페이스를 막론하고 0으로 설정한다.
6. 모니터링
==> 실제로 어느 부분에서 문제가 있어서 느린 줄 알아야 속도를 개선할 수 있으므로 log 나
trace, 기타 모든 방법을 총동원하여 monitoring한다.(performance manual을 참조)
내용 막연한 질문이지만 데이타를 집계하는 작업을 하면 데이터베이스를 사용하는 다른 실의
프로그램이 굉장히 느려집니다. 집계하는 과정에서 select와 insert가 많이 일어나거든요.
ini화일은 거의 default 입니다. 다만 롤백세그먼트만 몇개 추가된 상태입니다. 무슨무슨 원인이
있을까요. NT 에 512M 입니다.
똑같은 서비스를 하는 다른곳에서는 같은 작업을 해도 다른실은 느려지지 않은걸봐서 sql문은
괞찬은것 같습니다.
내용 1. 메모리가 작다.
==> SGA를 늘려준다.
==> sort_area_size를 늘려준다. 이 값보다 큰 sort 작업의 경우 temp tablespace에 temporary
segment를 생성하게 되므로 기본값인 64K보다 크게 만들어 주면 (1메가 이상) 속도를 올려줄
수 있을 것이다.
2. disk에 대한 performance를 올리고 싶다.
==> RAID구성이 가능하다면 RAID 0 로 구성해서 속도를 올릴 수 있음
==> checkpoint가 너무 자주 일어남(alert.log에 checkpoint not complete 등의 메시지가 자주
나옴) log_checkpoint_interval을 충분히 크게 하여(999999999) 이를 무시하게끔 하고
log_checkpoint_timeout을 0으로 설정하여 시간에 의한 checkpoint를 못하게끔 한다. 그리고
redo log file size를 크게 하여 log switch에 의한 checkpoint 횟수를 줄이게끔 한다.
3. row chaining
==> 적절한 pctfree, pctused를 설정하여 row chaining 이나 row migration등이 일어나지 않도
록 한다.
4. MTS
==> 세션이 가장 많을 때(v$resource_limit)를 계산해서 그렇게 많지 않다면 MTS를 결코 쓰지
않는다.
5. extents
==> db내 extent의 사이즈를 전체적으로 통일하고 어떠한 segment라도 100개 이상의 extent를
갖지 않도록 한다. 특히 temp tablespace의 default storage 내 initial 과 next를 1M 이상으로
하고 pctincrease는 어느 테이블스페이스를 막론하고 0으로 설정한다.
6. 모니터링
==> 실제로 어느 부분에서 문제가 있어서 느린 줄 알아야 속도를 개선할 수 있으므로 log 나
trace, 기타 모든 방법을 총동원하여 monitoring한다.(performance manual을 참조)

