いいえ、違いはないはずです。 EXISTS
一致する行が 1 つ見つかるとすぐに救済されます。そのため、常に優先されます。 (select COUNT(*) from ...) > 0
- COUNT
すべての行が考慮されます。
次の 4 つのクエリを作成した場合:
select * from sys.objects
select top 1 * from sys.objects
select 1 where exists(select * from sys.objects)
select 1 where exists(select top 1 * from sys.objects)
実行計画をオンにすると、2 番目のクエリが TOP
を含む実行計画を生成することがわかります。 オペレーター。 3 番目と 4 番目のクエリは 同一 を生成します 予定。 TOP
は無視されます。