为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:麒麟
【CPU】:128
【问题描述】:select 语句,其中有个in,in 4个参数时候很快,in5个参数就1分钟以上。
让在select语句加上这段,但系统很多语句没办法挨个加
怎么能从数据库层面修改,让自动优化呢
select * ++/+ENABLE_IN_VALUE_LIST_OPT(1)*/++ from
执行了SP_SET_PARA_VALUE(1,‘ENABLE_IN_VALUE_LIST_OPT’,1);
数据库服务重启了,也不好用
还是要根据in 的值去看执行计划,分析为何性能存在差异,然后再去考虑hint,hint不是万能
可否提供一下截图, 4个参数与5个参数时的执行计划,以及where in ()的内容
今天遇到有人也问过相似的问题。
这跟4个参数,5个参数关系不大,跟in中的参数值相关。
如果统计信息未收集,且有一个值重复值太多,导致走了错误的NEST LOOP INDEX JOIN + BLUP 就大错特错。
还有一个,你未提供完全的SQL,复杂SQL 代价估算等等又不一样。
可以收集下这张表的统计信息再看一下,现在优化器一般这种场景应该可以处理了
相关列有索引吗,过滤性怎么样,查看下执行计划