【发布时间】:2018-07-05 06:21:54
【问题描述】:
我想问,什么查询应该更高效?
select col1, col2 from
(select col1, col2 from table2)
where col1 = 'something'
或
select col1, col2 from
(select col1, col2 from table2
where col1 = 'something')
where col1 = 'something'
似乎第二个查询应该更有效,但在 sqldeveloper 中第一个查询花费的时间更少。为什么会这样?
【问题讨论】:
-
两个查询都会失败
-
请不要使用不适用于您的问题的标签
-
您不必在第二个查询中按 Col1 过滤两次。 Col1 = 'something' 的行已在子查询中过滤。
-
为什么你认为第二个查询应该更有效?您正在将另一个过滤器添加到组合中。还有一个过滤已经过滤的记录。在您给定的示例中,
select col1, col2 from table2 where col1 = 'something'将是更少的处理步骤。 -
@JohnConde - 您编辑了标签以删除
[sql-server]和[mysql],但留下了[oracle]。你为什么会做出这样的选择?查看 OP 历史中的问题,他们似乎更有可能使用[mysql](Oracle SQL Developer 可以连接到 MySQL,并安装了正确的 JDBC jar)。
标签: sql oracle performance