0

毎月着実にサイズが大きくなっているテーブルへのインデックスのゲインと、インデックスを使用したクエリのゲインとの間の微妙な境界線について質問があります。

状況は、Table1とTable2の2つのテーブルがあるということです。各テーブルはゆっくりと、しかし毎月定期的に増加します(Table1には約100の新しい行があり、 Table2には2つの行があります)。

私の具体的な質問は、インデックスを作成するか、削除するかです。Table2のカバーインデックスがSELECTクエリを改善することを測定しましたが、ここでも、長所と短所を考慮する必要がありますが、決定するのは非常に困難です。

Table1の場合、SELECTクエリはそれほど一般的ではないため、インデックスを作成する必要がない場合があります。

良い解決策についての提案、ヒント、または単に良いアドバイスをいただければ幸いです。ちなみに、データベースシステムとしてIBMDB2バージョン9.7を使用しています

心から

メスティカ

4

1 に答える 1

2

インデックスを追加すると、挿入が遅くなり、クエリが速くなります。

賢明な決定を下すには、予想されるデータの量を正確に測定する必要があります。複数のクライアントが同時にデータベースにアクセスしている場合、挿入とクエリの両方で最大負荷をシミュレートする小さなマルチスレッド アプリケーションを作成することは理にかなっています。

結果は、データの性質と実行しているハードウェアによって異なります。ユースケースの最良の答えを知りたい場合は、データとハードウェアを使用して正確にテストする以外に方法はありません。

次に、自問する必要があります。

どのクエリ パフォーマンスが必要ですか?
とにかく、インデックスがなくてもクエリのパフォーマンスが十分に良い場合は、簡単です。インデックスを追加しないでください。

どのインサート性能が必要ですか?
追加のインデックスで必要な制限を下回ることはできますか? そうでない場合は簡単: インデックスを追加してください!

クエリ パフォーマンスのために絶対にインデックスが必要であり、インデックスで必要な挿入パフォーマンスが得られないことがわかった場合は、より優れたハードウェアを購入する必要があるかもしれません。ソリッド ステート ディスクは、データベース サーバーに驚異的な効果を発揮し、手頃な価格になりつつあります。

いずれにせよ、システムが誰にとっても正常に動作している場合は、心配する必要はありません。そのまま実行してください。

于 2010-05-15T23:00:04.037 に答える