1

DB2 9.7.5 64Bits を使用しています。サーバーには十分なメモリがありますが、クラスタリングはありません。

私は巨大な計算を行う必要があります: 私のデータベースでいくつか (約 20) の比率を計算します。中には 25 秒ほどかかるものもあります。

結果は結果テーブルに格納されます。

現在、いくつかの解決策があります (ポリシーとして、Stored Proc は除外しています)。

Java クライアントから一度に 1 つずつ各比率を呼び出すか、マルチスレッド Java クライアントで複数の比率を呼び出します。

私の仮定は、私のデータベースがボトルネックであるため、マルチスレッドから呼び出すのは役に立たないということです。しかし、db エンジンが実際に 1 つのクエリに対して 100% の CPU を提供するかどうかは完全にはわかりません。エンジンはおそらく、いくつかのクエリ間で CPU パワーを共有できるに違いないと思います。

現在、IBM Data のマニュアルを読んでいますが、フィードバックをお寄せください。

どうもありがとう。

4

2 に答える 2

0

私は巨大な計算を行う必要があります: 私のデータベースでいくつか (約 20) の比率を計算します。中には 25 秒ほどかかるものもあります。

25 秒は必ずしも悪いことではありません。多分その素晴らしい結果は、あなたが計算するものに依存します

現在、いくつかの解決策があります (ポリシーとして、Stored Proc は除外しています)。

ストアド プロシージャは悪ではありません。安全に使用する方法を知る必要があります。

私の仮定は、私のデータベースがボトルネックであるため、マルチスレッドから呼び出すのは役に立たないということです。しかし、db エンジンが実際に 1 つのクエリに対して 100% の CPU を提供するかどうかは完全にはわかりません。エンジンはおそらく、いくつかのクエリ間で CPU パワーを共有できるに違いないと思います。

Java でのマルチスレッド化は (スレッドを安全に保つ限り) 心に留めることはありません。これは、大量の計算を行う場合に特に役立ちます。私はdb2を使用していないので、マルチスレッドでどれだけ優れているかはわかりませんが、シングルスレッドの場合、CPU使用率が100%に達するとは思えません。db2 の conf ファイルをチェックして少し調整する必要があります。また、IBM DB2 クラスタリングに関する記事も読んでください。

また、データ ウェアハウスツールを使用して、スクリプトのパフォーマンスを db2 に対して分析することをお勧めします。

幸運を

于 2012-08-23T11:05:02.537 に答える
0

マテリアライズド クエリ テーブルをご覧ください。作業しているのがレポートであり、特に完全に最新の情報を必要としない場合は、時間ごとのバージョンなどで計算するのが重い部分を含む MQT をセットアップできます。

于 2012-12-16T12:05:27.150 に答える