[Oracle]一時表領域の実サイズ

カテゴリ:

Oracleの一時表領域がファイルシステムの場合、
CREATE時は指定したサイズのブロックは割り当てられず、
ソート等の実際のアクセス時にブロックが割り当てられます。

lsでは、実サイズは表示されないため、
作成時サイズが表示されます。
一方、使用量を示す du では、実サイズが表示されます。

KROWN#34427:ローカル管理の一時表領域を作成する際の注意点
KROWN#17158:TEMPORARY属性の表領域(一時表領域)とはどのようなものですか?

なお、一度割り当てられたOSブロックは解放されることはありません。
インスタンス停止時やOSリブート時も同様です。
従って、CREATE TABLESPACE時の指定サイズを確保したい場合は、
一時表領域作成直後に大量SORT処理を実施し、最大サイズまで
割り当てておきます。

さらに、詳細な説明です。

ローカル管理一時表領域の tempfile は sparse file として作成されており、
作成時に全てのブロック割当てを行わないのは OS の機能となるため
指定サイズを割当てることができません。
'sparse'ファイルでは、空のOSブロックは実際にブロックを確保せずに、
ブロックが空であるというマーカーを付けます。
OSは、ブロックにデータを移入する際、空きブロックを検索します。
Oracleのデータ・ファイルは作成時にゼロのブロックで満たされています。
つまり、領域はあらかじめ割り当てられており、ゼロで満たされています。

Twitter

購読

New Comment

Tag Cloud

広告

広告

Calendar