FAQ
데이타 유형별 차지하는 메모리 크기 | |||||
분류 | 운영/관리 | 등록일 | 2013-07-09 | 조회수 | 3897 |
msjung 2004-02-19 183 데이타 유형별 차지하는 메모리 크기 +++++++++++++++++++++++++++++++++++++++ 요약 ++++ 알티베이스3에서 각 data type별로 사용하는 메모리 공간에 관한 내용입니다. 데이타 타입별 사용공간 계산하는 방법 ++++++++++++++++++++++++++++++++++++ 데이타 타입 실제 길이 align 크기 ------------------------------------------------------------- char 2 + 선언된길이 2 varchar 2 (variable) 32 + 2+ 실제길이 smallint 2 2 integer 4 4 bigint 8 8 numeric(=decimal) 21 (2+p/2 + p%2||s%2?1:0) 없음 number 22 없음 float 22 (2 + (p+2) / 2) 없음 real 4 4 double 8 8 date 12 4 blob 4 + 선언된 길이 4 hss_nibble 1 + (precision + 1) / 2 2 hss_bytes 선언된 길이 4 레코드 크기 계산 방법 +++++++++++++++++++++ 각 레코드는 <레코드 헤더, 칼럼 데이타들>로 구성되며 전체 레코드 길이는 8바이트 align된 크기를 가진다. 각 데이타 타입 별로 align되는 크기가 다르므로 레코드 길이 계산시 이 부분도 고려해야 한다. ex) create table t1 ( c1 char(1), c2 bigint, c3 smallint, c4 date); ===> 24 + 3 + 8 + 2 + 12 = 49 ==> X 24 + 8 + 8 + 4 + 12 = 56 ==> O 레코드 길이 검사 관련 SQL문 +++++++++++++++++++++++++++ (1) 테이블이 각 칼럼별 오프셋과 길이 출력 select a.column_name, a.offset, a.size from system_.sys_columns_ a, system_.sys_tables_ b where b.table_name='T1' and a.table_id=b.table_id; (2) 모든 테이블의 레코드 길이 출력(variable record size는 제외됨) select b.table_name, a.slot_size from system_.sysx_fixed_page_memory_ a, system_.sys_tables_ b where a.table_oid=b.table_oid; |