为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:dm8 【操作系统】:coentos 【CPU】:amd 【问题描述】*: 有条sql, 条件为固定值,会走索引 条件为日期函数,则走全扫 注:日期函数 查出来就是固定值 ‘2024-01-01’
YEATERDAY 和 FIRSTDAY_THISYEAR 这两个是自定义函数么?是为了取前一工作日和年度第一个工作日的么?还是只是取自然日?
如果只是取自然日,在函数中没有其他的查询语句,可以试试把这两个函数加上 DETERMINISTIC 修改成确定性函数 类似于
CREATE OR REPLACE FUNCTION ... RETURN ... DETERMINISTIC AS BEGIN ... END;
然后看看是否能用上索引了
或者,试一下修改SQL写法,类似于
select * from 。。。 where 。。。 >= (select firstday_thisyear(yeaterday)) and ...
YEATERDAY 和 FIRSTDAY_THISYEAR 这两个是自定义函数么?是为了取前一工作日和年度第一个工作日的么?还是只是取自然日?
如果只是取自然日,在函数中没有其他的查询语句,可以试试把这两个函数加上 DETERMINISTIC 修改成确定性函数
类似于
CREATE OR REPLACE FUNCTION ... RETURN ... DETERMINISTIC AS BEGIN ... END;
然后看看是否能用上索引了
或者,试一下修改SQL写法,类似于
select * from 。。。 where 。。。 >= (select firstday_thisyear(yeaterday)) and ...