以下のスニペットに対してNHibernateが生成するSQLクエリのプロファイリングを行っています。コード#1の方が効率的だと思いますが、生成されたSQLには疑問があります。
1)bool any = Query.Where(user => user.Id == 1).Any();
生成:
select
*
from
users
where exists
(select id
from users
where id = 1)
and rownum <= 1
2)bool any = Query.Where(user => user.Id == 1).Count() > 1;
生成:
select
count(*)
from
users
where
id = 1
どちらがより効率的ですか?将来、これをどのように判断しますか?Oracleを使用しています。