50 を超える列と 150,000 を超える行を持つ 2 つのテーブルがあります。両方のテーブルがリレーションシップ (主キーと外部キー) にあります。
両方のテーブルからレコードを取得するクエリを実行したいのですが、実行に時間がかかります。
両方のテーブルのパフォーマンスを改善するにはどうすればよいですか?
私を助けてください。
50 を超える列と 150,000 を超える行を持つ 2 つのテーブルがあります。両方のテーブルがリレーションシップ (主キーと外部キー) にあります。
両方のテーブルからレコードを取得するクエリを実行したいのですが、実行に時間がかかります。
両方のテーブルのパフォーマンスを改善するにはどうすればよいですか?
私を助けてください。
詳細情報と EXACT SQL を提供する必要があります。ここにいくつかの基本があります(SQLが使用されていると仮定)
各テーブルにインデックスが定義されていることを確認してください。
必要な列のみを返すようにしてください
FK/PK でデータ型が同じであることを確認します (FK が論理的な場合)。
WHERE で関数を使用しないようにしてください - 使用するとパフォーマンスが低下することがあります
WHERE で OR を使用しないようにしてください - 使用するとパフォーマンスが低下することがあります
実行計画を取得し、インデックスが使用されているかどうかを確認します。
繰り返しますが、より多くの情報が必要です。
使用済みクエリを入力してください...
各テーブルにインデックスが定義されていることを確認してください。これらは、渡されたクエリの Where 句の直後に使用されます。必要な列とサブクエリのみを使用する代わりに、クエリで Select * を使用しないでください。すべてのテーブル レコードではなく行数を返す where 句の特定の条件に対してのみクエリを実行します。両方のテーブルで使用するキー列のデータ型を同じにしてください。
実行計画をチェックして、インデックスが使用されているかどうかを確認します。