電子書籍の厳選無料作品が豊富!

現在Oracle10gにてDB構築しているのですが、表領域サイズについてよくわからないので詳しい方がいらしたら教えてください。

以下の3つのテーブルを同一表領域内に入れたいと考え、表サイズの合計サイズ分の表領域を確保してそこにテーブルを作成しようとしたときに領域が足りずにエラーが発生します。
テーブルA 604,800KB
テーブルB 444,352KB
テーブルC 725,760KB
合計サイズ:1,774,912KB→確保サイズ:1,740MB

ブロックサイズ:16KB

しょうがないので少しずつ拡張して入るように調整したところ「1,750MB」確保したところ無事に作成することができました。
Enterprise Managerコンソールで使用量を確認したところ「1,744.063MB」となっていました。

約10MBほど多く領域が取られているのですが、この現象についてご存知の方がいらっしゃいましたらご教授願えませんでしょうか。

ちなみに他の領域についても同様に計算どおりのサイズになっておらず、増えているサイズはマチマチです。

よろしくお願いいたします。

A 回答 (2件)

STORAGE ( INITIAL 604800K ・・


の部分についてですが、

INITIALで指定した604800Kのエクステントが1個できていると思って見えるかもしれませんが、実際にはそうではないです。
(以前のディクショナリ管理ではそうだったのですが・・)

ローカル管理表領域のAUTOALLOCATEではORACLEにお任せです。

せっかくinitial値を指定しても、エクステントがたくさんできてしまいます。
合計では指定したinitialに近いサイズになりますが、ぴったりではありません。

ただ、initialの指定が無意味ということではなく、指定したinitial値に見合ったそれなりに大きめのサイズのエクステントを用意してくれますので、サイズ計算してinitial指定をする意味はあります。

dbaの権限にて以下を実行するとエクステントの状態がよくわかりますので確認してみて下さい。
col segment_name for a30
select segment_name,extent_id,bytes from
dba_extents where segment_name = '大文字表名';

この回答への補足

なるほど。。。そういう具合になっているのですね。
早速確認してみます。
情報ありがとうございます。

補足日時:2006/05/16 11:08
    • good
    • 0
この回答へのお礼

確認したところおっしゃるとおりでした。
そうなると、表領域を確保するときにそれを見越したサイズにしないといけないのですね。

すごく勉強になりました。ありがとうございました。

お礼日時:2006/05/16 11:22

takkunnet様私はOracle10gは触った事無いので、以前のバージョンの内容でお答え致します。


表領域のサイズについてですが、データベースに格納されているすべてのデータに対して、「データブロック」「エクステント」「セグメント」といった単位で「表領域」を構成しています。表領域には表や索引といったオブジェクトを格納します。そして、表や索引に使用可能な領域を割り当てます。この事から、実際はテーブルスペースより大きくなります。
また、上記の事が違うなら単にブロックサイズと実際のデータの配置の関係上フラグメンテーションの誤差ではないでしょうか。

この回答への補足

親切丁寧な回答ありがとうございます。

索引(プライマリキー、インデックス共)については別領域に割り当てております。
そういった場合でも何らかの情報が表定義の領域に入り込むものなのでしょうか?

ちなみにCreate文は
CREATE TABLE テーブルA (
項目1 VARCHAR2(10) NOT NULL,
項目2 CHAR(4) NOT NULL)
TABLESPACE 表領域 PCTFREE 10 PCTUSED 80
STORAGE ( INITIAL 604800K MINEXTENTS 1 );

こんな感じになっています。

あと、誤差とも考えてみたのですが、領域によると数十MBもの差が生じているので「誤差」にしては「あまりにも大きいな・・・ってのが私の見解でして。。。。

なにか他に要因があるのでは・・・?と考え質問させていただきました。

なにか他に考え付くことがありましたがどんな些細なことでも結構ですのでご意見を賜れればと存じます。

このたびはありがとうございます。

補足日時:2006/05/15 19:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す