안녕하세요 불새 입문자 샤프가이리키 입니다.
테이블 생성시 용량 증가에 대해 조사중입니다.
다음은 테이블을 생성할 때 시스템 테이블에 저장되는 메타데이터에 대한 조사 내용입니다.
BLOB 타입이 여러개 있어 정확한 용량은 알 수가 없네요.
결론 부터 정리해 드리자면.
[{( 664 byte ) + ( BLOB * 16 )} * 컬럼수] + [{( 1125 byte ) + ( BLOB * 6 ) } * 테이블 수]
+ [{( 76 byte ) * PK 수} + {( 110 byte ) * 테이블 수}] * PK 유무
정도 되는듯 합니다.
다음은 자세한 내용입니다.
------------------------------------------------------------------------
smallint 의 경우 4 byte 로 계산 했습니다.(int 와 동일)
double precision 은 8 byte 로 계산 했습니다.
varchar 는 각 1 byte 로 계산하였습니다.
테이블을 생성할 때 DB 에 저장되는 메타데이터의 양
RDB$PAGES( 12 byte ) * 컬럼수
RDB$FIELD( 249 byte + BLOB sub_type 2 * 4 + BLOB sub_type 1 * 6 ) * 컬럼수
RDB$RELATION_FIELDS( 372 byte + BLOB sub_type 1 * 3 + BLOB sub_type 2 * 1 ) * 컬럼수
RDB$SECURITY_CLASSES( 31 byte + BLOB sub_type 1 * 1 + BLOB sub_type 3 * 1) * 컬럼수
RDB$RELATIONS( 407 byte + BLOB sub_type 1 * 2 + BLOB sub_type 2 * 1 + BLOB sub_type 5 * 1 + BLOB sub_type 8 * 1 ) * 테이블 수
RDB$FORMATS( 8 byte + BLOB sub_type 6 * 1 ) * 테이블 수
RDB$USER_PRIVILEGES( 710 byte ) * 테이블 수
[{( 664 byte ) + ( BLOB sub_type * 16 )} * 컬럼수] + [{( 1125 byte ) + ( BLOB sub_type * 6 ) } * 테이블 수]
PK가 있을때 추가적으로
RDB$INDEX_SEGMENTS( 76 byte ) * PK 수
RDB$RELATION_CONSTRAINTS( 110 byte ) * 테이블 수
{( 76 byte ) * PK 수} + {( 110 byte ) * 테이블 수}
------------------------------------------------------------------------
요즘과 같은 테라바이트 이상의 시대에 100 kb 도 되지 않는 양의 데이터에 대해
용량이 크다 작다 라 논하기는 싫지만...
어쨋든 이러하네요.
테이블의 수를 줄일 수는 없는 상황이어서 불새를 계속 사용한다고 하면 이정도 용량은 감수 해야 할듯 합니다.
불새 사용에 조금이나마 도움이 되셨으리라 생각하면서 이만 용량문제는 접도록 하겠습니다.
읽어주셔서 감사합니다.
|