• ベストアンサー

NEXT EXTENTのサイズが0

こんにちは Oracleのテーブルを作成するときに ExtentのINITIALを1KB、Nextを0KB、 MAXEXTENTSをUNLIMITEDで設定した場合 1KB以上のデータを入れた場合Oracleとしては どのような動作になるのでしょうか? 実際にやってみると明らかに1KB以上のデータを 挿入しているにもかかわらずエラーが発生しません。

質問者が選んだベストアンサー

  • ベストアンサー
  • MZ-80B
  • ベストアンサー率56% (46/81)
回答No.2

ローカル管理表領域と旧来のディクショナリ管理表領域と異なり一部制限されて自動化されています。 STORAGE 句は下位互換のために自動的に変換されています。 参考: http://biz.rivus.jp/technote507015.html AUTO ALLOCATEを使用しているということですから エクステントのサイズは64KB~4MBの可変でMAXEXTENTは指定できませんから勝手に拡張されていきます。 2^31エクステントはオラクルの上限です。 下のURLのスキルアップ講座はわかりやくまとめられた資料ですのでぜひ参考にしてください。 http://otn.oracle.co.jp/skillup/oracle9i/index.html 第3部 テーブルの設計 に書かれています

harukachan
質問者

お礼

早速のご回答ありがとうございます。 スキルアップ講座見てみました。 判りやすく記述してあり理解できたと思います。 もう少し、この講座内容を見てみます。

その他の回答 (1)

  • MZ-80B
  • ベストアンサー率56% (46/81)
回答No.1

データブロックサイズは最低でも2KB以上だからだと思いますが ローカル管理表領域かディクショナリ管理表領域なのかによって変わるような気がします。 ローカル管理表領域ならUNFORMかAUTO ALOCATEによって変わると思います。 自分の環境がどんなバージョンのどんな表領域でデータブロックサイズがいくつかを調べて、さらに調査してみてはどうでしょう?

harukachan
質問者

お礼

ありがとうございます。 Oracleバージョンは9.0.4で表領域管理はローカル管理 でAUTOALOCATEになっていました。 この場合、NEXT 0であってもOracle側で勝手に拡張し てくれるのでしょうか? 管理者マニュアルを見たのですが力不足で理解できま せんでした。 それともう一つ解せない動きでMAXEXTENTSを指定して いるにもかかわらず2147483645という値が設定されて しまいます。 これもAUTOALLOCATEであるからなのでしょうか? 質問ばかりで申し訳ありません。

関連するQ&A