0

データベース (DB2) に 400K レコードのテーブル TICKET があります。

応答を高速化するために、この 1 つの大きなテーブル専用の巨大なバッファー プールを 1 つ作成したいと考えています。それを行うための手順は何ですか?

また、現時点では、データベース内のすべてのテーブル (約 200) でテーブル スペース全体をカバーする 1 つのバッファー プールがあります。その古い最初に作成されたバッファプール内の特定のテーブルで何が起こるでしょうか? そのテーブルを最初のバッファー プールに残す必要がありますか、またはそのバッファー プールから削除する方法は?? また、このアクションにはいくつかのリスクがありますか???

ありがとうございました

4

1 に答える 1

1

この記事が役立つと思います: http://www.ibm.com/developerworks/data/library/techarticle/0212wieser/index.html

大きなテーブルを別のバッファー プールに移動すると、パフォーマンスが向上する可能性がありますが、ユース ケースによって異なります。記事からの関連する引用:

複数のバッファー プールを使用すると、バッファー内のデータを保持できます。たとえば、非常に頻繁に使用される小さなテーブルが多数含まれるデータベースがあるとします。これらのテーブルは通常、非常に迅速にアクセスできるように全体がバッファー内にあります。また、同じバッファー プールを使用し、合計バッファー サイズよりも多くのページを読み取る非常に大きなテーブルに対してクエリを実行する場合もあります。このクエリを実行すると、非常に頻繁に使用される小さなテーブルのページが失われるため、再度必要になったときに再度読み取る必要があります。小さなテーブルに独自のバッファー プールがあり、そのために独自のテーブル スペースが必要な場合、それらのページは大きなクエリで上書きできません。これにより、システム全体のパフォーマンスが向上する可能性がありますが、大規模なクエリにわずかな悪影響が及ぶことになります。

これを行うことにした場合、テーブルスペースごとに 1 つのバッファー プールしか持つことができないため、大きなテーブルを独自のテーブルスペースに移動する必要があります。この記事では、テーブルスペースとバッファー プールの作成例を示します。

を使用して、テーブルを別のテーブルスペースに移動できますADMIN_MOVE_TABLE。危険だとは思いません。移動中にソース テーブルに加えられる可能性がある変更をキャプチャします。唯一のことは、移動中にソース テーブルでいくつかの (めったに使用されない) アクションを無効にすることです。

CREATE TABLESPACEorALTER TABLESPACEステートメントで指定することにより、バッファ プールをテーブルスペースに割り当てます。

于 2013-02-12T10:07:51.943 に答える