1

テーブルがあり、単純な条件を満たすレコードが存在するかどうかを確認したいと思います。どちらがより速く動作するか知りたいのですが:

if (select count(*) from ... where ...) > 0

また

if exists (select top (1) from ... where ...)

4

2 に答える 2

5

カウントがカウントを決定するためにテーブル全体をスキャンする必要がある間、existsはwhere句に一致するレコードを見つけるとすぐに結果を返します。だから存在する方が速い

于 2012-04-20T12:40:27.910 に答える
3
if exists (select 1 from ... where ...) 

(列にインデックスがあると仮定しますwhere...)

于 2012-04-20T12:34:03.223 に答える