小编Flu*_*rok的帖子

Oracle函数的优化器

我有一个查询:

SELECT id, value
FROM very_large_table -- over 5 million records 
WHERE foo(value) > 5 AND boo(value) IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

假设foo并且boo是函数,这也使得在没有索引的超大型表上进行大量选择(因此它的执行成本很高).

我(作为程序员)知道,foo在99%的时间内返回超过5,但boo回报率为99.9%NULL.
很明显,首先boo应该计算出来.如果是NULL,我们不希望结果集中有这一行.所以我们不需要计算foo,因为boo已经NULL.

是否有关于这个主题的任何包/文章,因为,如果我做得对 - oracle不做这种优化


以上只是一个例子.在我的情况下,有很多功能(~50),我在各种组合的各种选择中使用它们.所以重写函数并不是真正的选择,因为在实际情况中有很多它们:我只是想表明这些请求真的很慢.我只想到某种优化器(除了oracle之外)

oracle optimization

8
推荐指数
2
解决办法
635
查看次数

标签 统计

optimization ×1

oracle ×1