【发布时间】:2012-11-17 10:03:34
【问题描述】:
我正在执行一个 SQL 查询,它扫描几百万行的表。 我试图实现的是,只有当结果集只包含一行时,我的选择查询才应该返回结果。 我知道这两种方法可以做到这一点:
1) 使用 group by 然后'有 count( * )'
2) 使用进一步使用'count( * ) over'的内部查询
但这两种方法都会影响性能。 我想知道,是否还有其他更快的方法可以做到这一点。如果您需要更多信息,请告诉我。 谢谢。
【问题讨论】:
-
我假设您只需要 SQL,而不是 PL/SQL(如 select into from..)将满足此要求,因为 2+ rows = TOO_MANY_ROWS 异常。
标签: performance oracle select count resultset