0

次のようなクエリがあります。

select * from table1,table2 where table2.table1id = table1.id;

table2.table1id は、table1 の対応するエントリを指す外部キーです。table1 と table2 には主キーがあり、どちらも id と呼ばれます。

table2 は、myindex と呼ばれるセカンダリ インデックスでもあります。これが私の問題です。テスト中、

Microsoft SQL Server は、table2 (id) の主キーを使用する必要があり、"table1id" インデックスを直接使用する代わりに、テーブル 1 テーブルをスキャンして一致する ID を内部的に実行します。

ヒントを使用してクエリを作成し、二次キーを直接使用するように SQL に指示できることはわかっています。

ここに私の質問があります:

  1. これは必要ですか、それともヒントが不要になるようにデータベースのインデックスを設定する方法ですか。
  2. これは現在、私の Java プログラムに埋め込まれたストレート SQL で書かれています。休止状態に移行した場合、休止状態は自動的にヒントを生成しますか?

  3. リスト項目

4

0 に答える 0