-2

50 を超える列と 150,000 を超える行を持つ 2 つのテーブルがあります。両方のテーブルがリレーションシップ (主キーと外部キー) にあります。

両方のテーブルからレコードを取得するクエリを実行したいのですが、実行に時間がかかります。

両方のテーブルのパフォーマンスを改善するにはどうすればよいですか?

私を助けてください。

4

2 に答える 2

2

詳細情報と EXACT SQL を提供する必要があります。ここにいくつかの基本があります(SQLが使用されていると仮定)

  • 各テーブルにインデックスが定義されていることを確認してください。

  • 必要な列のみを返すようにしてください

  • FK/PK でデータ型が同じであることを確認します (FK が論理的な場合)。

  • WHERE で関数を使用しないようにしてください - 使用するとパフォーマンスが低下することがあります

  • WHERE で OR を使用しないようにしてください - 使用するとパフォーマンスが低下することがあります

  • 実行計画を取得し、インデックスが使用されているかどうかを確認します。

繰り返しますが、より多くの情報が必要です。

于 2013-10-14T03:26:04.627 に答える
0

使用済みクエリを入力してください...

各テーブルにインデックスが定義されていることを確認してください。これらは、渡されたクエリの Where 句の直後に使用されます。必要な列とサブクエリのみを使用する代わりに、クエリで Select * を使用しないでください。すべてのテーブル レコードではなく行数を返す where 句の特定の条件に対してのみクエリを実行します。両方のテーブルで使用するキー列のデータ型を同じにしてください。

実行計画をチェックして、インデックスが使用されているかどうかを確認します。

于 2013-10-17T06:27:24.867 に答える