oracle视图二次查询慢

同样一个sql查询视图,首次查询很快,1s内就查询出来,第二次再查需要1分多钟才能出来。

sql语句如下:

sql 复制代码
select *
  from vEISWorksService
 where StudiesDoneDate >= '20230628'
   and StudiesStatus = 100
   and RESULTSINDEX is not null
   and (ResultsReportsPost is null or ResultsApprovePost is null)
   and rownum <= 50;

查看后台等待事件,主要在于"db file sequential read",但是并没有堵塞发生

sql 复制代码
EVENT                              MACHINE              BLOCKING_SESSION

------------------------           ------------

db file sequential read             ris01
db file sequential read             WORKGROUP\ZYJPDYSVR

这个问题首先想到了,基数反馈(Cardinality Feedback )问题导致的查询慢,由于并不确认是否真是这个问题造成,首先在会话级别调试,设置session级别"_optimizer_use_feedback"=FALSE

sql > alter session set "_optimizer_use_feedback"=FALSE;

再次查询发现再次查询确实不再慢了,正式关闭基数反馈。

SQL> alter system set "_optimizer_use_feedback"=false;

基数反馈是 Oracle 11.2 引入的关干 SQL性能优化的新特性,但是该参数存在不稳定因素,可能会带来执行效率的问题,所以建议关闭优化器反馈。

相关推荐
枫叶丹4几秒前
浙人医信创实践:电科金仓异构多活架构破解集团化医院转型难题
开发语言·数据库·架构
yddddddy2 分钟前
Django在项目中的作用
数据库·python·django
Lee-Aiya3 分钟前
MacBook M4芯片 Arm64架构 基于docker安装Oracle 19c
macos·docker·oracle·arm
TDengine (老段)4 分钟前
TDengine COLS 函数用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine
q***31145 分钟前
使用 Qt 插件和 SQLCipher 实现 SQLite 数据库加密与解密
数据库·qt·sqlite
x***44019 分钟前
远程访问mysql数据库的正确打开方式
数据库·mysql
p***434810 分钟前
后端在消息系统中的顺序保证
数据库·数据仓库·docker
e***282911 分钟前
【细如狗】记录一次使用MySQL的Binlog进行数据回滚的完整流程
android·数据库·mysql
想不明白的过度思考者14 分钟前
数据库基础与MySQL核心组件解析
数据库·mysql·oracle