@myInputParameter
以下の最初の呼び出しは、5000 未満 かどうかを確認するためにこのチェックを 1 回だけ行うため、より効率的であると想定していました。
チェックが失敗した場合、クエリを完全に回避します。しかし、他の人が 2 番目の例のようなコードを書いているのを見たことがあります。
どちらが速いか誰か教えてください。特に呼び出しが大規模なデータ セットをくまなく調べている場合は、2 番目の呼び出しの方がはるかに遅くなるようです。
最初の呼び出し:
IF (@myInputParameter < 5000)
BEGIN
SELECT
@myCount = COUNT(1)
FROM myTable
WHERE someColumn=@someInputParameter
AND someOtherColumn='Hello'
--and so on
END
2 回目の呼び出し:
SELECT
@myCount = COUNT(1)
FROM myTable
WHERE someColumn=@someInputParameter
AND someOtherColumn='Hello'
AND @myInputParameter < 5000
--and so on
編集: SQL Server 2008 R2 を使用していますが、どのクエリが SQL の「ベスト プラクティス」であるかを知りたいと思っています。これら 2 つのステートメントのクエリ時間の差は 1000 分の 1 秒であると確信しているため、それほど重要ではありません。一般的に、より良い SQL コードを書くことに興味があります。ありがとう