Oracleの最大エクステント数
Oracle データベースの最大エクステント数は、表領域の管理方法により異なる。
dba_segments.max_extents でオブジェクト毎の最大エクステント数を確認できる。
ディクショナリ管理
ブロックサイズにより異なる。
ローカル管理
ブロックサイズに関係なく、最大エクステント数は 2GB -1 となる。
ブロックサイズ/最大エクステント数
1KB/57、2KB/121、4KB/249、8KB(デフォルト)/505、16KB/1017、32KB/2041
以前はエクステント数も定常的に監視することが多かったが、ローカル管理となっては
上限に達するのは非現実的なので、あまり意味を成さないものと思われる。
テーブル定義
SQL> desc dba_segments 名前 NULL? 型 ---------------- ------ --------------- OWNER VARCHAR2(30) SEGMENT_NAME VARCHAR2(81) ⇒ セグメント名(※) PARTITION_NAME VARCHAR2(30) SEGMENT_TYPE VARCHAR2(18) SEGMENT_SUBTYPE VARCHAR2(10) TABLESPACE_NAME VARCHAR2(30) HEADER_FILE NUMBER HEADER_BLOCK NUMBER BYTES NUMBER ⇒ バイト単位のサイズ BLOCKS NUMBER ⇒ ブロック単位のサイズ EXTENTS NUMBER ⇒ 割り当てられたエクステント数 INITIAL_EXTENT NUMBER ⇒ 初期エクステントに必要なバイトのサイズ NEXT_EXTENT NUMBER ⇒ 次回エクステントのバイト単位のサイズ MIN_EXTENTS NUMBER ⇒ エクステントの最小数 MAX_EXTENTS NUMBER ⇒ エクステントの最大数(※) MAX_SIZE NUMBER ⇒ ブロックの最大数 RETENTION VARCHAR2(7) MINRETENTION NUMBER PCT_INCREASE NUMBER FREELISTS NUMBER FREELIST_GROUPS NUMBER RELATIVE_FNO NUMBER BUFFER_POOL VARCHAR2(7)
紛らわしいなーと思っていたのは、MAX_SIZE 。
MAX_SIZE はブロック数の最大数であって、エクステントの最大数ではないので。