2

4-5 テーブル結合操作を含む 1 つのストアド プロシージャがあり、その SP i は 2 つの異なるデータベース (すべてのテーブル定義は同じ) で実行され、DB-1 では SP で 20-25 秒、DB-2 SP では 1 秒かかります。 DB-1インデックスを再構築した後に実行すると、DB-1のSPは以前と比較してすばやく動作します。

では、結合とテーブル インデックスの関係はありますか? はいの場合、この種の問題を解決するにはどうすればよいですか?

4

1 に答える 1

3

インデックスの使用が結合のパフォーマンスに影響するかどうかを尋ねる質問を理解しました。答えは圧倒的な「はい」です。

一般に、必要な行数が少ないテーブルへの結合では、インデックスが使用されます (インデックスが存在する場合)。

テーブルの大部分が必要なテーブルに結合すると、「フルテーブル スキャン」(Oracle の用語) が発生し、DBMS はこれをインデックスとして使用して結合キーのハッシュを作成し、その後、適切な値を調べます。入会時に使用します。

これらの概要については、 http://en.wikipedia.org/wiki/Join_%28SQL%29#Implementationおよび結合アルゴリズムに関する参照記事を参照してください。

于 2012-10-22T13:55:50.250 に答える