相同的查询、相同的数据、相同的执行计划但响应时间不同 (ORACLE 11g)

Same query, same data, same execution plan BUT different response time (ORACLE 11g)

我对视图的(简单)查询感到疯狂。

查询是在前端动态构建的,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).[=15 的情况下工作正常=]

我只是想要一种告诉 oracle 优化器的方法 "Ehy, don't do anything whit that column and use it for last",可能吗?

感谢大家。

尝试向查询添加提示:

/*+ opt_param('_OPTIMIZER_USE_FEEDBACK','FALSE') */

更多信息google基数反馈