Oracle 10-查询短路评估

Oracle 10-查询短路评估,oracle,plsql,Oracle,Plsql,Oracle 10是否支持短路评估查询?如果是,有一些特殊的钥匙可以使用吗?您可能在谈论短路评估 一个数据库管理系统已经实现了。不能保证先评估哪个条件,也没有特殊的键来激活它 请注意,PL/SQL确实使用了短路评估我所看到的Oracle所做的唯一短路与NVL vs COALESCE有关 SELECT NVL(1,1/0) FROM DUAL SELECT COALESCE(1,1/0) FROM DUAL NVL计算双方并抛出一个错误,而合并不会 看起来decode也在做同样的事情: SEL

Oracle 10是否支持短路评估查询?如果是,有一些特殊的钥匙可以使用吗?

您可能在谈论短路评估

一个数据库管理系统已经实现了。不能保证先评估哪个条件,也没有特殊的键来激活它


请注意,PL/SQL确实使用了短路评估

我所看到的Oracle所做的唯一短路与NVL vs COALESCE有关

SELECT NVL(1,1/0) FROM DUAL

SELECT COALESCE(1,1/0) FROM DUAL
NVL计算双方并抛出一个错误,而合并不会

看起来
decode
也在做同样的事情:

SELECT decode(1,1,9,2,1/0) FROM DUAL
它不评估第二部分,因此避免抛出错误


在SQL Server optimizer上,我知道查询引擎可以重写此类语句,并导致类似于这样的短路示例出现问题,因此作为一般规则-您永远不应该依赖逻辑中的短路-我不知道这是否适用于Oracle-我想会的。

短路查询是什么意思?你能举个例子吗?短路查询意味着,如果在where子句中我有类似于“where A=B或B=C”的内容,如果第一个子句为真,它不会检查第二个子句。与从磁盘读取数据块的成本相比,两个值之间的简单比较几乎是零。或者从块中读取信息。