1

DB 統計の実行 テーブルを更新するときに、多くの物理的なオーバーフローが見られます。
その理由は、null として開始され、後で 20 文字までの値に更新される varchar 列であると考えています。それが発生すると、レコードが物理ページからオーバーフローするため、新しいページが割り当てられ、テーブルを再編成するまでデータの局所性が低下します。

varchar 列を null から文字列に更新してもオーバーフローしないように、事前にレコードに十分なスペースを割り当てるように DB にヒントを与えるにはどうすればよいですか?

  • 定義済みの最大長がないため、固定長の CHAR 列タイプに切り替えることができません。
  • null の代わりに魔法の値 ("0000000000000000000" など) をプリアロケータとして使用することは避けます。
  • 私の主な使用例は DB2 ですが、MSSQL と Oracle についても知りたいです。
4

1 に答える 1

1

この問題は、常に更新されるテーブルの PCTFREE を変更することで対処できます。

db2 alter table xxx pctfree 25

PCTFREE は、行のオーバーフロー用に予約されている、ページ内の空きスペースの割合です。スペースを無駄にせず、行オーバーフローのために別のページを使用しないようにするために、テーブルに適切な値を見つける必要があります。

詳細については

于 2013-08-21T12:58:28.047 に答える