database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 1982 게시물 읽기
No. 1982
Re: 요구하신 TABLE SIZE 계산 공식
작성자
전명균
작성일
2000-11-08 11:36
조회수
5,991

흔히 테이블 사이즈는 요구 안해서 저도 가물가물 했습니다.

그래서 저도 많이 찾아야 했습니다.

그럼 시작 해보죠

-------------------------------------------------------

1. TABLE SIZE 계산 공식(ORACLE BLOCK SIZE : 2K 로 가정)

-------------------------------------------------------

$ sqlplus scott/tiger

SQL> SELECT GREATEST(4, ceil(ROW_COUNT /

((round(((1958 - (initrans * 23)) *

((100 - PCTFREE) /100)) / ADJ_ROW_SIZE)))) * BLOCK_SIZE)

TableSize_Kbytes

FROM dual;

 

*. 한 개의 BLOCK에 Available 한 Bytes - 1958

*. 각 initrans 는 23 Bytes

*. PCT_FREE : Table 의 pctfree 값(default 10)

*. ADJ_ROW_SIZE : 각 row 의 평균 SIZE 추정치

*. ROW_COUNT : table 의 row 의 갯수

*. BLOCK_SIZE : 1 block의 크기 (단위: K)

참고) 여기서 initrans가 햇갈리시죠.

● INITRANS

▶ Data block내의 raw를 동시에 접근할 수 있는 transaction을 위한 미리

할당된 공간의 예약

▶ 공간은 데이타 또는 인덱스와 관련된 모든 데이타블럭에 예약되어 있슴.

▶ Default : 1(for table), 2(for index and cluster)

 

■ 예1) 테이블의 크기가 크고 동시 사용자가 많지 않을 경우==>

INITRANS를 작게 설정

■ 예2) 하나의 테이블에 동시 사용자가 많을 경우==> INITRANS를 크게

설정하고 MAXTRANS 를 크게하여준다.(사용자의 wait time을 줄이기 위함)

만약 바꾸고 싶으시다면 초기파라미터를 수정하면되겠죠

TRANSACTION [Number]

 

예) table 이름이 EMP 일 경우

 

ROW_COUNT : select count(*) from emp;

 

ADJ_ROW_SIZE :

SQL> analyze table emp compute statistics;

(또는 건수가 매우 많을 때에는 compute 대신 estimate 사용)

 

SQL> select avg_row_len

from user_tables

where table_name='EMP';

 

SQL> select pct_incrase

from user_segments

where segment_name = 'EMP';

 

결론적으로....

 

SVRMGR> SELECT GREATEST(4, ceil(14 /

2> ((round(((1958 - (1 * 23)) *

3> ((100 - 50) /100)) / 40)))) * 2048)

4> TableSize_Kbytes

5> FROM DUAL;

TABLESIZE_

2048

1 row selected.

 

이렇게 하면 안될가요.....

좋은하루 되십시요.

 

>>정재 님께서 쓰시길<<

'emp'라는 테이블의 남은 용랑은 알수가 없는것 같아요..이걸 알수 있는 방법을 아시 면 답변부탁:: 드립니다...

[Top]
No.
제목
작성자
작성일
조회
1964오라클 C API 가 있나요?(Mysql CPI처럼)
김동수
2000-11-06
4031
1965┕>Re: 오라클 C API 가 있나요?(Mysql CPI처럼)
정재익
2000-11-06 21:54:30
4102
1962오라클 api 어디서 구하죠???
조준동
2000-11-06
4794
1963┕>Re: 오라클 api 어디서 구하죠???
정재익
2000-11-06 19:15:19
4202
1961급질&gt;&gt; 오라클 7에서의 cursor문제...
일지매
2000-11-06
4161
1960tablespace
정재
2000-11-06
3757
1969┕>Re: tablespace
전명균
2000-11-07 09:49:58
4660
1971 ┕>답변 감사합니다..근데
정재
2000-11-07 16:55:57
3744
1982  ┕>Re: 요구하신 TABLE SIZE 계산 공식
전명균
2000-11-08 11:36:54
5991
1957데이타 베이스내 에서 테이블 보기
김범석
2000-11-06
3335
1958┕>Re: 데이타 베이스내 에서 테이블 보기
문승재
2000-11-06 16:17:20
4220
1952오라클에서 필드값..
hiten
2000-11-06
3502
1953┕>Re: 오라클에서 필드값..
김규태
2000-11-06 13:04:38
3481
1954 ┕>Re: Re: 오라클에서 필드값..
hiten
2000-11-06 13:12:58
3724
1948급합니다..갑자기 연결이 안됩니다.
김정우
2000-11-06
3893
1950┕>Re: 급합니다..갑자기 연결이 안됩니다.
김규태
2000-11-06 11:03:46
4023
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.029초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다