ローカル管理表領域と記憶域属性

ローカル管理表領域 の場合 MINIMUM EXTENT および DEFAULT STORAGE の INITIAL、NEXT、PCTINCREASE 使用時の 振る舞いは覚えておくには面倒すぎるのでディクショナリ管理表領域の DDL はローカル管理表領域に書き換えることを強くお勧めする。

ディクショナリ管理表領域用の旧パラメータの互換処理

ローカル管理表領域の DDL には MAXEXTENTS は指定できない。 また、MINIMUM EXTENT および DEFAULT STORAGE 句の INITIAL、NEXT、PCTINCREASE を指定することは 表領域 を定義する上で混乱を招くので使用は避ける方がよい。(※)

(※) 記述してもローカル管理に置換された時点で詳細設定は破棄されるのでパラメータとして意味がなくなる。

もし DDL において MINIMUM EXTENT および DEFAULT STORAGE 句の INITIAL、NEXT、PCTINCREASE が設定されている場合には、 それぞれのパラメータにより UNIFORM ALLOCATE か AUTO ALLOCATE かが判定される。(同時に INITIAL サイズも判断される) どのようなパターン時にどちらになるかを正確に把握していなければ誤りの元になる。

  • MINIMUM EXTENT を併用している場合

    PCTINCREASE = 0 かつ INITIAL = NEXT = MINIMUM EXTENT の場合
    INITIAL の大きさで UNIFORM ALLOCATE

  • MINIMUM EXTENT を指定していない場合

    PCTINCREASE = 0 かつ INITIAL = NEXT の場合
    INITIAL の大きさで UNIFORM ALLOCATE

上記以外の場合は AUTO ALLOCATE(システム) となる。
ただし、EXTENT MANAGEMENT LOCAL { AUTOALLOCATE | UNIFORM [ size ] } と同時にこれらのパラメータを指定すると

ORA-25143: デフォルト記憶域句が割当てポリシーと互換性がありません。とエラーとなる。

作成例と結果

SQL> CREATE TABLESPACE LOCAL_TEST_UNIFORM_1
  2  DATAFILE '/u05/xxx/local_test_1.dbf' SIZE 10M REUSE
  3  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 5M;
表領域が作成されました。
 
SQL> CREATE TABLESPACE LOCAL_TEST_UNIFORM_2
  2  DATAFILE '/u05/xxx/local_test_2.dbf' SIZE 10M REUSE
  3  MINIMUM EXTENT 5M
  4  DEFAULT STORAGE (
  5  	INITIAL 5M
  6  	NEXT 5M
  7  	PCTINCREASE 0
  8  );
表領域が作成されました。
 
SQL> CREATE TABLESPACE LOCAL_TEST_UNIFORM_3
  2  DATAFILE '/u05/xxx/local_test_3.dbf' SIZE 10M REUSE
  3  MINIMUM EXTENT 5M
  4  DEFAULT STORAGE (
  5  	INITIAL 1M   -- ← ここが異なる
  6  	NEXT 5M
  7  	PCTINCREASE 0
  8  );
表領域が作成されました。
TABLESPACE_NAMEINITIAL_EXTENTNEXT_EXTENTALLOCATION_TYPE
LOCAL_TEST_UNIFORM_152428805242880UNIFORM
LOCAL_TEST_UNIFORM_252428805242880UNIFORM
LOCAL_TEST_UNIFORM_365536-SYSTEM(AUTO)
 


ローカル管理表領域と記憶域属性の関連トピックス

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー