티스토리 뷰

728x90

* 용량 산정방식

   테이블 row 당 Byte길이합 * 일발생건수예상치 / (1024 kb) / (1024 mb) = 용랑(mb)

 

ex) A 테이블

컬럼 데이터타입 길이
age varchar2 8
name varchar2 12

테이블 row당 Byte기이 합 : 8+12

일발생건수 예상치 : 테이블에 들어가는 쿼리 결과의 행의 수 count

 

테이블 용량 산정

테이블의 평균 Row의 길이 = 평균  Row길이 + 3Byte(Row Header) + 테이블의 칼럼 갯수

이 공식의 평균 Row 길이는 다음과 같은 방식에 의해 속성 데이터 형별로 길이를 산정하고 이를 합함으로써 얻는데,

그값은 추정치입니다.

 

데이터타입 산정값
char 산정한 길이를 그대로 인정
number, long raw

산정한 길이 / 2

Number의 경우 Precision만 산정. 즉,Number(13,3)이면 13만인정

varchar2

(산정한 길이 / 2) + 1

대부분 문자형으로 char가 아닌 varchar2를 사용한다면 일정한 길이 이하인 경우 카럶의 산정한 길이를 그대로 사용하여야 할것입니다. 예로 20미만 길이는 그대로 사용하고 , 20이상의 경우 위공식을 사용할수 있습니다.

data 7

초기 크기 = 최대 건수 * 테이블의 평균 Row의 길이

증가 크기 = 초기 크기 * 20%

초기크기 :

1 디스크 공간의 여유에 따라 (초기건수 + 증가건수) 또는 최대건수를 테이블의 Row 개수로 인식하여 

아래 계산 공식을 적용하여 계산

(ORACLE DB BLOCK SIZE: 2K로 가정)

SELECT GREATEST(4,(ORACLE DB BLOCK SIZE : 2K로 가정) 
SELECT GREATEST(4, ceil(ROW_COUNT / ((round(((1958 - (initrans * 23)) *
         ((100 - PCT_FREE) /100)) / ADJ_ROW_SIZE)))) * 2) TableSize_Kbytes FROM dual; 

한 개의 BLOCK에 Available 한 Bytes - 1958 
각 Initrans 는 23 Bytes  
PCT_FREE : 테이블의 Pctfree 값 (default 10) 
ADJ_ROW_SIZE : 테이블 평균 Row 길이 
ROW_COUNT : 테이블의 Row 개수 

 

테이블 목록을 작성하기 위해서는 먼저 용량 산정이 수행되어야 합니다. 
예로 회원 테이블에 대한 용량을   최대 건수가 50만 건으로 추출되었고 
테이블의 평균 Row의 길이가 120 Byte 라는 전재 하에  초기 크기 = 최대 건수 * 테이블의 평균 Row의 길이
증가 크기 = 초기 크기 * 20% 



와 같은 간단한 공식으로 구해보면 다음과 같습니다. 

초기 크기 = 최대 건수(50만 건) * 길이(120 Byte) 
= 60000000 byte / (1024*1024) = 57.2 M 
≒ 60M 

증가 크기  = 60M * 20%  
= 12M 


pctfree 15 
pctused 60
pctincrease 0 or  pctfree + pctused 100 

 

 

참고 - http://blog.naver.com/PostView.nhn?blogId=okkk00&logNo=110108569817

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함