• 締切済み

テーブルのSTORAGE句のサイズ設定

ある実績テーブルがあるとします。 日々、ロードされるデータ量にばらつきがあるとします。 (ロードされない日もあれば、一日に数日分ロードされる場合もある) こういった場合、最大日数分ロードされるデータ量にあわせて テーブルのSTORAGE句のNEXTサイズを大きく取るのか、 1日分のデータ量に合わせて、小さくNEXTサイズを取るのか どちらが適当なのでしょうか? 大きく取ると拡張の時に時間がかかるような気がしますし、 小さく取ると、最大日数分のデータが来たとき、 拡張の繰り返しで遅くなりそうな気もします。 このような時、どうするのがよい策でしょうか? またNEXTサイズの最大サイズの目安とかありますでしょうか?

みんなの回答

回答No.4

Oracleのバージョンが書いてありませんが、9i以降であればよほどの理由が無い限り LOCAL管理表領域、ASSM(Auto Segment Space Management)機能を用いるべきです。 LOCAL表領域、ASSMを用いればStorage句はほぼ指定しなくて良いでしょう。(するとすればPCTFREEとINITRANSくらいです) LOCAL管理表領域の場合、autoかuniformかを選ぶことになりますが、 集中拡張時の負荷を低減したいのであればauto、断片化が発生するのを避けたいのであればuniformとなります。 今はもうinitial extentやnext extentのサイズで迷う時代では無いですね。

すると、全ての回答が全文表示されます。
回答No.3

想定しうるデータ量分を初期確保(INITIAL)の上、想定外にデータが多かった場合の保険として、増分(NEXT)を設定するのが、 一般的でしょう。 ここで言う想定しうるデータ量とは、データの保存期限を含めて計算した将来格納するデータです。 (質問の例だと、1日あたりの平均データ量×保存期限≒初期確保サイズ) オラクル的には、ストレージの不足による拡張は、格納データの断片化など・・嬉しいことは一つもありません。

すると、全ての回答が全文表示されます。
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

Oracle 9i 以上ではデフォルトがローカル管理表領域であり、NEXT は設定しても無視されるので設定する必要はありません。 もし、ディクショナリ管理表領域を利用している場合は、私の場合、INITIAL と同じくらいの値もしくは INITIAL の 10% だとか、25% だとかという目安を作って設定しています。(ディクショナリ管理表領域の場合、エクステントが別れること自体良くないので、INITIAL で十分量を確保しているため、あまり大きな追加領域を必要とはしないはず)

すると、全ての回答が全文表示されます。
回答No.1

STORAGE句はいろいろ個人差が出るので、あくまでも参考意見としてですが、 私はNEXTで領域を取るのではなくINITALで大きく(想定する平均データサイズ分)確保します。

すると、全ての回答が全文表示されます。

関連するQ&A