항상 데이터를 데이터파일에 저장할 때는 연속된 익스텐트가 있어야 하는데, 만약 연속된 익스텐트가 부족하다면 저장이 불가한 상황이 생길 수 있다.
이런 경우는 공간이 분명히 남아있는데도, 저장이 불가하다. 이때는 조회를 해서 안쓰는 블록끼리 모아주는 작업을 해주어야 하는데 이를 테이블 리오그 작업이라 한다.
이런 것을 자동으로 해주는 프로세스가 있는데 SMON이 바로 그것이다.
앞전에서 우리가 배웠듯 SMON은 인스턴스 복구를 해주는데, 평소에는 프리공간을 모아주는 일을 한다.(Colease free space)
◆ 블록
- I/O의 최소 단위
- 하나 또는 그 이상의 OS블록으로 구성되어 있다.
- DB_BLOCK_SIZE는 디폴트 블록 사이즈를 결정한다.
- 오라클의 블록 크기는 2, 4, 8, 16, 32K가 있는데 DB_BLOCK_SIZE에 적힌 값을 스탠다드(Standard) 블록 사이즈라 부르고, 나머지는 다 논스탠다드(Non-Standard) 블록 사이즈라 부른다.
◇ Standard Block Size
- DB를 다시 생성하기 전까지는 변경할 수 없다.
- DB_CACHE_SIZE 크기는 최소 1그래뉼값이고, 안써주면 기본 48MB이다.
◇ Non-Standard Block Size
- 기본적으로 10g를 설치하면 DB_BLOCK_SIZE는 8K가 잡힌다. 그래서 테이블스페이스를 생성시 BLOCKSIZE 옵션을 안주면 자동으로 8K의 DB캐시로 끌어올려지는 것이다.
◆ Granule(그래뉼)
메모리를 할당할 때 쓰는 단위를 뜻함.
그래뉼을 결정하는 기준은 SGA이다.
alter system set db_cache_size=10M;
show parameter db_cache_size;
나는 분명히 10M을 주었는데 조회해보면 12M이다. 그래뉼이 4M라 그렇다.
alter system set db_cache_size=9M;
show parameter db_cache_size;
조회해보면 12M이다.
alter system set db_cache_size=8M;
show parameter db_cache_size;
조회해보면 8M이다.
결과적으로 그래뉼 단위로 지정된다는 것을 확인할 수 있다.
show parameter db_cache_size;
나는 분명히 10M을 주었는데 조회해보면 12M이다. 그래뉼이 4M라 그렇다.
alter system set db_cache_size=9M;
show parameter db_cache_size;
조회해보면 12M이다.
alter system set db_cache_size=8M;
show parameter db_cache_size;
조회해보면 8M이다.
결과적으로 그래뉼 단위로 지정된다는 것을 확인할 수 있다.
'오라클 > Admin' 카테고리의 다른 글
[Admin] Undo Management (0) | 2010.09.02 |
---|---|
[Admin] ASSM(Automatic Segment Space Management) (0) | 2010.09.01 |
[Admin] Types of Segments (0) | 2010.09.01 |
[Admin] Temporary Tablespace (0) | 2010.08.30 |
[Admin] Tablespace and Datafiles (0) | 2010.08.30 |