背景:服务器上的定时任务卡住了,作为一个数据库的小白,我只知道把语句拿来plsql 软件中跑,发现有两个查询的语句特别慢,就开始边百度边分析了,先上语句


旧语句:

select to_char(sysdate,'yyyymmdd HH24:Mi') log_date,'04' zbdm,'查询次数' zbmc,count(*) tjsj from  jspt.Pt_Qx_Gnmk_Fwrz t  where t.djsj>sysdate-0.5/24 and t.mkxkid='75031'


然后手动F8 执行确实不快,这时候,问题就来了,百度到说是F5执行会打开执行计划,就尝试了下,发现入下图:

oracle 通过执行计划来将语句走强制索引_强制索引

然后点了下表看了下字段和索引,发现奇怪了,发现语句走的是时间索引了,但不知道怎么的,看着定时的执行时间,应该是定时跑的时候没有走到时间索引,然后发现只能让他强制的走时间索引了,/+index(t,PT_QX_GNMK_FWRZ_DJSJ_NEW)/ ,然后问题解决,定时上高峰期跑的速度也很快了

select /+index(t,PT_QX_GNMK_FWRZ_DJSJ_NEW)/to_char(sysdate,'yyyymmdd HH24:Mi') log_date,'04' zbdm,'发票查询次数' zbmc,count(*) tjsj from  jspt.Pt_Qx_Gnmk_Fwrz t where t.djsj>sysdate-0.5/24 and t.mkxkid='75031'



阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: oracle