강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của devmes01051778
devmes01051778

câu hỏi đã được viết

Oracle hiệu suất phân tích và điều chỉnh phiên bản chính yếu hướng dẫn

Cấu trúc bộ nhớ Oracle và Tổng quan về SGA

undo space 수식에 대해

Viết

·

345

0

강의와 오라클 펀더멘탈을 병행하여 공부중인데
UNDO TABLE SPACE 부분에서 크기조정 관련 수식이 나오는데 해당 수식 자세한 해설 부탁드려도 될까요? 너무 어려워서요 ㅜㅜ
UndoSpace = [UR * (UPS * DBS)] + (DBS * 24)
oracleDBMS/RDBMS

Câu trả lời 4

0

pudding님의 프로필 이미지
pudding
Người đặt câu hỏi

자세한 답변 너무 감사합니다~ 이해 잘됐어요

0

dooleyz3525님의 프로필 이미지
dooleyz3525
Người chia sẻ kiến thức

undo_retention 은 read consistency를 위해서 undo 데이터를 보관하고자 운영자가 설정하는 시간입니다. 

가령 배치 프로그램 같이 큰 DML 등이 수행될 때 read consistency를 위해서 오랜 기간 undo 데이터를 보관이 필요할 수 있습니다.

Default는 900초(15분) 이지만, 보통은 30분 ~ 한시간 정도 설정해 놓습니다만, 배치 프로그램이 오랫동안 DML을 수행할 경우 몇시간 이상도 설정합니다.

undo_retention을 오래 잡으면 당연히 undo segment용 tablespace도 커야 합니다. 

이를 계산할 때 1초당 증가하는 undo segment 크기를 기반으로 하면 됩니다.

1초당 증가하는 undo segment 는 1초당 발생하는 undo block수 x 1 block의 크기(보통은 8k) 입니다.

그리고 1 초당 증가하는 undo segment가 undo_retention 만큼 유지되려면 여기에 undo_retention 설정 초 수를 곱해 주면 됩니다. 

1초당 발생하는 undo block 수: (SELECT (SUM(undoblks)/SUM(((end_time - begin_time)*86400))) AS UPS FROM v$undostat)

1 block의 크기: SELECT value AS DBS  FROM v$parameter WHERE name = 'db_block_size'

undo_retention 설정값: SELECT value AS UR FROM v$parameter WHERE name = 'undo_retention'

그리고 적정한 수준의 여유 크기를 더해 주면 됩니다.

0

pudding님의 프로필 이미지
pudding
Người đặt câu hỏi

UNDO 테이블스페이스의 크기를 조정하려면 세 가지 데이터가 필요합니다. 두 가지 데이터

는 초기화 파일에서 얻을 수 있으며 UNDO_RETENTION과 DB_BLOCK_SIZE입니다. 공식

의 세번째 부분에는 데이터베이스에 대한 질의가 필요합니다. 초당 생성되는 실행 취소 블

록의 수는 V$UNDOSTAT에서 얻을 수 있습니다. 다음 공식은 생성되는 전체 블록의 수를 계

산하여 모니터되는 시간(초)으로 나눕니다.

SQL> SELECT (SUM(undoblks) / SUM) ((end_time - begin_time) *

86400)FROM v$undostat;

END_TIME 및 BEGIN_TIME 열의 데이터 유형은 DATE입니다. 데이터 유형 DATE 간에 뺄

셈을 수행하면 결과가 날짜로 표시됩니다. 날짜를 초로 변환하려면 하루를 초로 계산한

86400을 곱합니다.

질의의 결과로 초당 실행 취소 블록 수가 반환됩니다. 이 값은 DB_BLOCK_SIZE에 정의된

데이터베이스 블록과 같은 크기인 실행 취소 블록의 크기로 곱해야 합니다. 다음 질의는 필

요한 바

UR : undo_retention (초)

UPS : 초당 생성되는 실행 취소 데이터 블록 수

DBS : 확장 영역 및 파일 크기에 따라 달라지는 오버헤드 (db_block_size)

SQL> SELECT (UR * (UPS * DBS)) + (DBS * 24) AS "Bytes"

2 FROM (SELECT value AS UR

3 FROM v$parameter

4 WHERE name = 'undo_retention'),

5 (SELECT (SUM(undoblks)/SUM(((end_time - begin_time)*86400))) AS UPS

6 FROM v$undostat),

7 (SELECT value AS DBS

8 FROM v$parameter

9 WHERE name = 'db_block_size');

Bytes

----------

19106213

오라클 fundmental1_vol1에서 발췌했어요

0

dooleyz3525님의 프로필 이미지
dooleyz3525
Người chia sẻ kiến thức

안녕하십니까,

저 수식이 나타내는 개별 변수가 무엇인지요? 

해당 수식과 관련한 오라클 펀더멘탈(책 인가요? )의 설명 부분을 자세히 기술 부탁드립니다.

Hình ảnh hồ sơ của devmes01051778
devmes01051778

câu hỏi đã được viết

Đặt câu hỏi