select vw013.ver,vw013.ACT,vw016.RN,vw016.RA,vw013.LS From vw016,vw013 WHERE vw013.ver = 0 and vw016.PROJ = vw013.PROJ and
vw016.VER = vw013.VER and vw016.ACT = vw013.ACT and vw016.proj not like 'FCST_%'其中vw013表中有1千万条以上数据,vw016表中有500万以上的数据,有什么方法可以加快检索速度?两个表的proj、ver、act上都有索引
vw016.VER = vw013.VER and vw016.ACT = vw013.ACT and vw016.proj not like 'FCST_%'其中vw013表中有1千万条以上数据,vw016表中有500万以上的数据,有什么方法可以加快检索速度?两个表的proj、ver、act上都有索引
From vw016,vw013
WHERE vw013.ver = 0 and vw016.PROJ = vw013.PROJ and
vw016.VER = vw013.VER and vw016.ACT = vw013.ACT and substr(vw016.proj,1,5)<>'FCST_'去掉like 試試,不行再給vw016加上函數索引substr(vw016.proj,1,5)
可以先
dbms_stats.gather_table_stats 下相应的表,对相应表统计分析
来提高关联速度和数据存取
尽量不要使用 not like 在查询时CBO会停用索引的
改成 like 'XXX' or like 'XXX'
假如值多的话,只能 按照LS的建立函数索引
不建议使用<>一样会停用索引的 改成如下
substr(vw016.proj,1,5)<'FCST_' and substr(vw016.proj,1,5)>'FCST_'
可是oracle 在生成执行计划时处理不一样
提高查询效率方法很多
可以先
dbms_stats.gather_table_stats 下相应的表,对相应表统计分析
来提高关联速度和数据存取
尽量不要使用 not like 在查询时CBO会停用索引的
改成 like 'XXX' or like 'XXX'
假如值多的话,只能 按照LS的建立函数索引
不建议使用<>一样会停用索引的 改成如下
substr(vw016.proj,1,5)<'FCST_' and substr(vw016.proj,1,5)>'FCST_'--------------------------------------------------------
写错了!!!!
substr(vw016.proj,1,5)<'FCST_' or substr(vw016.proj,1,5)>'FCST_'