質問

AIXで実行されているDB2 LUW(特に現在9.7 FP4)と連携しています。

IBMのベストプラクティスごとに、テーブルを構築するときに、データ、インデックス、ロブ/長データをそれぞれ独自のテーブルスペースに配置することをお勧めします。 (理由は、ディスク、メンテナンス、バックアップなどをより適切に制御することです。)

テーブルスペースはバッファプールに関連付けられる必要があります。現在、私たちのテーブルとインデックスのほとんどは、4Kバッファープールとテーブルスペースに適合しています。

通常、スクリプトを使用すると、4K BufferPool BP4Kを設定します。次に、少なくとも2つの4Kテーブルスペースを設定します(LOBをたくさん持っていないため)データのTS_DAT_4K、インデックスのTS_IND_4K。デフォルトでは、これらのテーブルスペースの両方をBufferPool BP4Kに割り当てています。

私が疑問に思ったこと:インデックスは独自のテーブルスペースにあるので、彼らは彼ら自身のバッファプールも与えられるべきですか?

これを疑問に思う私の理由は、最適化に基づいています。インデックスに独自のバッファプールがある場合、テーブルレコードが読まれているためにメモリから押し出されるのではなく、メモリにとどまる可能性が高くなります。これにより、テーブル内のレコードを見つけるためにインデックスをより速くスキャンすることができます。また、インデックスは同じバッファープールをテーブルと共有しなくなるため、物理的な読み取りに対して論理検索のために、より多くのテーブルがメモリにとどまることができます。したがって、これにより物理的なI/Oが減少し、データベースのパフォーマンス/メンテナンスに役立つということです。

また、これが単なる最適化であるかどうか疑問に思わずにはいられません。現在のパフォーマンスについて。もちろん、開発中のアプリケーションはまだ生産されていないため、データベースのチューニングが必要です。

これについての考え?これはベストプラクティスですか?それとも、最適化前と考えすぎるだけですか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません dba.stackexchange
scroll top