2

約 500 万行の挿入を使用して、Oracle データベースのストレス テストを行う必要があります。当社の DBA によると、異なる必要があるのは主キーまたは外部キーだけで、他のすべての列は同じにすることができます。彼は、それを行うと、Oracle はデータを挿入するときに、いかなる種類のキャッシュも行わないと言いました。

彼が正しいことを確認したいだけで、これを行うことで、ストレステストの結果がランダムデータを使用した場合とほぼ同じくらい正確になる. ご協力ありがとうございました。

4

1 に答える 1

2

非常に狭い範囲の状況では、DBA が正しいです。すべてのクエリが主キーと外部キーに基づく検索である場合、それらは正しい可能性があります。ルールベースのオプティマイザが王様だった過去には、データはそれほど重要ではありませんでした。レコード カウントはありますが、実際にはデータではありません。

しかし、現実の世界ではそうではありません。他に指標はありますか?次に、データが重要です。主キー/外部キー以外のものに対して結合しますか? 次に、データが重要です。文字列はすべて 1 バイトですか、それとも null ですか? これらの可変長フィールドのサイズが IO の量に影響する可能性があります。基本的に、自明ではないアプリケーションの自明ではないスキーマでは、「現実的な」データを持つことが重要になる可能性があります。Oracle オプティマイザーは、クエリの実行方法を決定する際に、さまざまな統計を考慮します。

この負荷テストでは本当に挿入だけを行っていますか? それはちょっとばかげています。500 万レコードは、現代の基準では大量の変更です。通常、デスクトップは数秒でそれを行います。単純なアプリケーションでさえ、ルックアップを実行したり、非キー値に基づいて一連のレコードを取得したりするために、いくつかの選択を実行します。

あなたは、DBA のステートメントを評価するのに十分賢いようです。彼にそれを書面にしてもらい、署名してもらい、負荷テストのアイデアが期待どおりに機能しない場合に責任を負わせることができれば、それは素晴らしいことです。ただし、このテストの責任者はあなたのようです。

私があなたの立場なら、可能な限り正確なデータで負荷テストを行いたいと思います。本番システムまたはデータの既知のテスト セットからのコピーは、「ランダム」よりもはるかに優れたオプションであり、「主キー以外の null」アプローチよりもはるかに優れています。

于 2012-08-01T20:26:30.340 に答える