验证与查询匹配的记录是否至少有一条的最佳方法

时间:2014-05-08 13:47:27

标签: database oracle oracle11g

我必须对Oracle数据库进行查询,以验证是否至少有一条记录与我的查询匹配。

表中有6个连接,主表有大约4千万个记录。

我尝试了两种方法来进行选择:

select 1 from Table t ... 
    join X on x.id = T.id join Y on y.id = x.id ....
    where x.field = ? and y.field = ? and t.field = ?
    and rownum = 1

select count (*) from Table t ... 
    join X on x.id = T.id join Y on y.id = x.id ....
where 
    x.field = ? and y.field = ? and t.field = ?
    and rownum = 1

我根本没有Databses查询的经验,在初步测试中我在第一种情况下得到更好的查询次数,但是当没有记录时,第一次查询似乎非常慢。但我不知道即使我正在做正确的基准测试。

所以我问,这种类型的查询最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

您使用的是t-sql而不是pl / sql。你的第二个查询应该是这样形成的:

select count (*) 
from Table t, X, Y
where x.id = T.id and 
y.id = x.id and
x.field = ? and 
y.field = ? and 
t.field = ?

...而且你真的不需要rownum = 1,只是一个计数。

答案 1 :(得分:0)

我认为执行查询的两种方式没有区别。