目的
永久テーブルのデータ ブロックに使用するストレージ割り当て単位の大きさを指定します。
フィールド グループ
ファイル システム
有効な範囲
1~127個のセクター
1個のセクターは512バイトです。
4KB仕様のデバイスのクリークの場合、この設定は8セクターの倍数に切り上げられます。
デフォルト
1個のセクター
変更の反映
DBS制御レコードへの書き込みが行なわれた後。
PermDBAllocUnitとシステム パフォーマンス
テーブルを変更すると、行が追加、削除、および変更されます。データ ブロックは、テーブルの現在の内容に合わせて動的に拡大または縮小します。ただし、データ ブロック サイズはPermDBAllocUnitの単位でしか変更できません。したがって、ほぼ常に、データ ブロックの最後に未使用の領域が存在することになります。テーブルの各変更が比較的均等である場合、データ ブロック サイズは徐々に増えるように変化し、平均で割り当て単位の約半分の領域が各データ ブロックで無駄になります(これはおおまかな推定概算であり、データベースごとに異なるさまざまな要素によって決まります)。
新しい行が頻繁にテーブルに追加されたり、可変長の行を持つテーブルが頻繁に大きくなる環境では、割り当て単位を大きくすることで、システム パフォーマンスが多少向上する場合があります。割り当て単位を大きくすると、追加の変更に対応できるスペースがあらかじめ確保されるので、データ ブロックを頻繁に拡大する必要がなくなります。ただし、新しい行が頻繁には追加されない環境では、各ブロックの領域が大きくなると、平均I/Oサイズが増加してパフォーマンスが低下する場合があります。
この設定は一度に大幅には変更せず、実動システムに変更をコミットする前に、その影響について慎重に判断してください。割り当て単位は、頻繁に変更されるテーブルの平均行サイズの倍数に設定します(最も近いセクターに切り上げる)。
割り当て単位を大きくしたときの利点は、多くの場合、その結果として無駄になる平均領域が増えることで相殺されるので、PermDBAllocUnitはデフォルトの設定のままにしておくことを推奨します。
複数行データ ブロックの最大サイズ
PermDBAllocUnitフィールドとPermDBSizeフィールドから、複数行データ ブロックの最大サイズが決まります。データ ブロックはPermDBAllocUnitで定義された段階(割り当て単位)でしか大きくならないので、PermDBSizeの設定に関係なく、データ ブロックのサイズはいつでもPermDBAllocUnitの整数倍になります。
そのため、PermDBAllocUnit設定がPermDBSizeの整数因数ではない場合、複数行データ ブロックの最大サイズはPermDBSizeより小さくなります。例えば、PermDBAllocUnitを4個のセクターに設定した場合、PermDBSizeを255に設定しても、最大の複数行データ ブロックは252個のセクター(255以下の4の最大の倍数)にしかなりません。同様に、PermDBAllocUnitを16に設定した場合は、最大の複数行データ ブロックは240個のセクターにしかなりません。