【发布时间】:2018-07-29 21:18:18
【问题描述】:
我对视图上的(简单)查询感到疯狂。
查询是在前端动态构建的,where 子句的条件如下:
AND( value1 = '*'
OR value1 = 'Y'
OR value1 is null)
此块是根据 3 个复选框构建的,因此您可以在仅选中 1 个复选框时具有条件
AND( value1 = '*')
查询对于每个值组合都有很好的响应时间(1 秒),条件除外
AND( value1 = '*')
对于条件
AND( value1 = 'Y')
有 30 分钟的响应时间。
尝试使用 TOAD 执行查询时,我注意到即使在这些情况下,第一次尝试响应时间也很长,但第二次使用相同数据执行相同查询时,响应时间为 30 分钟。
列 value1 很难评估(取决于 3 个具有其他查询的函数),但对我来说真的很奇怪,查询工作正常,例如条件 AND (value1 ='*' or value1 ='Y)。
我只是想要一种方法告诉 oracle 优化器“呃,不要对那一列做任何事情并将其用于最后”,这可能吗?
谢谢大家。
【问题讨论】:
标签: sql oracle11g query-performance