DB2 시작 - 테이블 스페이스와 버퍼풀의 관계

2010. 6. 22. 11:03컴퓨터 프로그램/DB2


DB2는 MYSQL과는 상당히 다른 구조를 가지고 있으며 ORACLE과는 비슷한 구조의 테이블 스페이스의 개념이 존재한다.

테이블 스페이스란 데이터베이스의 테이블 저장소정도로 생각하면 쉬우며

하나의 데이터 베이스에는 다수의 테이블 스페이스가 존재할수 있으며 하나의 테이블 스페이스에는 다수의 테이블이 존재할수 있다.

즉 간단하게 보면 데이터베이스>테이블스페이스>테이블>컬럼 이런 구조로 볼수 있다..

오라클을 익힌 사람이면 쉽게 이해가 될것이다.

하지만 오라클과의 다른 개념이 하나 존재하는데 버퍼풀이라는 개념이다..

오라클에서는 버퍼풀을 SGA 라는 메모리 영역을 설정함으로써 사용이 가능하며 이것은 테이블스페이스와는 별개의 공간이지만

DB2에서는 버퍼풀의 페이징 사이즈와 테이블스페이스의 페이징 사이즈가 같도록 구성해야한다.

테이블 스페이스의 페이징 사이즈가 4kb 인 테이블 스페이스를 생성하려면 동일한 페이징사이즈를 가진 버퍼풀을 생성해야한다.

만약 동일하지 않은 페이징 사이즈의 버퍼풀을 생성했거나 동일한 페이징 사이즈가 존재하지 않을경우 테이블 스페이스는 생성되지

않는다. 또한 페이징 사이즈는 테이블을 생성하는데 있어서 민감한 문제를 가져올수 있는데 페이징 사이즈가 4kb(기본사이즈) 라면

테이블 사이즈가 4k 를 넘는 테이블을 생성하려고 했을경우 테이블생성을 거부 한다. 가장 쉬운 예로써 varchar(4000)인데 ..

저것을 1개이상 생성했을 경우에는 페이징 사이즈를 그이상의 8k, 16k, 32k로 구성한 테이블 스페이스로 구성해야한다.