我一直在分析 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
哪个更有效率?将来,我将如何确定这一点?我正在使用甲骨文。