2

重複の可能性:
JOIN または WHERE 内の条件

以下の 2 つのクエリは同じですか?

SELECT u.*
FROM User u
    INNER JOIN Sales s ON (u.userId = s.userId)
WHERE
u.active = 1 AND
s.amount > 0 AND
s.status = 1 

対:

SELECT u.*
FROM User u
    INNER JOIN Sales s ON 
        (u.userId = s.userId AND s.amount > 0 and s.status=1)
WHERE
u.active = 1

これら 2 つのクエリは結果セットに関して常に同じですか? パフォーマンスの考慮事項?

4

1 に答える 1

2

SQL Serverクエリオプティマイザーは、これが同じことを行うことを理解するのに十分賢いので、同じ実行プランを生成します。つまり、同じパフォーマンスが得られます。実行計画を確認して比較できることを確認します。

実行計画の基本を確認してください

于 2012-10-30T18:22:10.113 に答える