undo space 수식에 대해
351
12 asked
Answer 4
0
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
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에서 발췌했어요
Toad for Oracle Trial 버전을 지원하지 않는것으로 보입니다.
0
63
1
table full scan과 index_ffs 성능비교
0
126
2
HDD가 아닌 SSD인 경우는 dBMS I/O가 어떻게 동작하나요?
0
125
2
HOST CPU 자료를 받으려면?
0
142
3
Buffer Cache를 통한 데이터 Access 에서 DBA 정보를 어떻게 알아내는지 궁금합니다.
0
155
2
random i/o와 full scan 문제 질문
0
166
3
hugepage_settings.sh 파일 실행시 커널 버전
0
210
2
강의중 윈도우 경고음?이 너무 크게 들릴때가 있습니다.
0
149
3
19ee 설치 관련
0
166
2
클라우드 굳이 안해도 되나요??
0
253
2
full scan 시 OS I/O 질문있습니다.
0
241
1
19c ee rpm 파일 설치 문의
0
228
1
direct path read/write temp 관련 질문
0
245
1
swingbench 에러좀 확인부탁드려요
0
339
2
회원가입 시 Customer type 구분
0
242
2
수료증 발급문의
0
232
1
swingbench 2.6 다운이 안받아져요
0
275
1
오라클 long data type 지원
0
438
1
sqldeveloper를 앞에서 썼다고 하셧는데...
0
216
1
soe_10g_01.dbf생성중 오류
0
222
1
TOAD 연결 질문드립니다.
0
345
1
oracl21c로 설치해도 되나요?
0
275
1
Hard Parsing의 자원 사용
1
513
2
Sequential Acess는 HDD상에서도 Block을 Sequential하게 읽나요?
1
365
2

