1 Reply Latest reply on Sep 30, 2006 5:59 AM by 531427

    오라클에서 테이블 스페이스 별로 블록 사이즈 설정 가능하나요?

    531883
      오라클 9i를 사용하고 있습니다.
      테이블 스페이스 별로 별도 블록 사이즈 설정이 가능하다고 하더군요.
      조회가 빈번하면 크게 잡고, 트랜잭션이 빈번하면 작게 잡으라는데 그럼 블록 사이즈를 임의로 여러개 생성 가능한가요?
        • 1. Re: 다른 block size를 가지는 테이블스페이스 생성 방법
          531427
          9i 이후에 가능합니다. 또한 locally managed tablespace
          이어야하고.. 테이블스페이스를 만들기 전에 메모리할당을
          미리 해야 만들 수 있습니다. 또한 db_cache_size를 사용하지
          않고 db_block_buffers 파라미터가 있으면 다른 블록크기의
          메모리를 할당하지 못하므로 db_block_buffers 파라미터 대신에
          db_cache_size를 꼭 사용해야 합니다.
          그리고 나서 db_몇k_cache_size를 쓰면 되겠죠.


          직접 만들어 보겠습니다.

          1. 지금 현재 DB는 8k 입니다. 8192 byte이죠..
          db_block_size=8192

          2. 16k cache size짜리로 메모리를 할당합니다.
          shared_pool_size=144M
          db_cache_size=128M
          db_16k_cache_size=80m

          3. DB를 재기동합니다.

          4. 16k 블록 크기를 가지는 테이블스페이스를 생성합니다.
          SQL> create tablespace tbs_16k_lob
          2 datafile '/data/oradata/PROD/tbs_16k_lob_01.dbf' size 100m
          3 uniform size 1m segment space management auto
          4 blocksize 16k;

          Tablespace created.

          SQL> select tablespace_name, block_size, extent_management from dba_tablespaces;

          TABLESPACE_NAME BLOCK_SIZE EXTENT_MAN
          ------------------------------ ---------- ----------
          SYSTEM 8192 DICTIONARY
          UNDOTBS 8192 LOCAL
          USERS 8192 LOCAL
          TOOLS 8192 LOCAL
          TBS_16K_LOB 16384 LOCAL