プロが教える店舗&オフィスのセキュリティ対策術

ある実績テーブルがあるとします。

日々、ロードされるデータ量にばらつきがあるとします。
(ロードされない日もあれば、一日に数日分ロードされる場合もある)

こういった場合、最大日数分ロードされるデータ量にあわせて
テーブルのSTORAGE句のNEXTサイズを大きく取るのか、
1日分のデータ量に合わせて、小さくNEXTサイズを取るのか
どちらが適当なのでしょうか?

大きく取ると拡張の時に時間がかかるような気がしますし、
小さく取ると、最大日数分のデータが来たとき、
拡張の繰り返しで遅くなりそうな気もします。

このような時、どうするのがよい策でしょうか?
またNEXTサイズの最大サイズの目安とかありますでしょうか?

A 回答 (4件)

Oracleのバージョンが書いてありませんが、9i以降であればよほどの理由が無い限り


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

想定しうるデータ量分を初期確保(INITIAL)の上、想定外にデータが多かった場合の保険として、増分(NEXT)を設定するのが、


一般的でしょう。
ここで言う想定しうるデータ量とは、データの保存期限を含めて計算した将来格納するデータです。
(質問の例だと、1日あたりの平均データ量×保存期限≒初期確保サイズ)

オラクル的には、ストレージの不足による拡張は、格納データの断片化など・・嬉しいことは一つもありません。
    • good
    • 0

Oracle 9i 以上ではデフォルトがローカル管理表領域であり、NEXT は設定しても無視されるので設定する必要はありません。



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

STORAGE句はいろいろ個人差が出るので、あくまでも参考意見としてですが、


私はNEXTで領域を取るのではなくINITALで大きく(想定する平均データサイズ分)確保します。
    • good
    • 0

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

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