我有一个查询,类似于select * from table1 where :iparam is null or iparam = field1;
在field1上有一个非唯一索引,但是oracle (11g据我所知,它不是在运行时优化查询,而是在编译时优化查询。我在存储过程中使用了这样的查询。我想知道,是否有一种方法可以告诉oracle,使用索引?我知道“提示”,但我想在所有项目中使用一些东西,比如一些优化器参数,以在运行时优化查询。
以下hibernate (3.x) SQL在Oracle 11g数据库中花费了很长时间。响应时间较慢的主要原因是where子句中的非索引列。数据库优化已经完成。
SELECT *WHERE id || '/' || name IN ( :vals )
AND (LEAST(DECODE(dt1, 0,