sql 优化
select
trim(store.odrim080_strid) odrim080_strid,
trim(store.odrim080_strshowcd) || ' - ' ||
trim(store.odrim080_stracnm) odrim080_stracnm
from odrim080_store store
where 1 = 1
AND store.ODRIM080_STATUS = '1'
and exists (select 1 from odrm023_autoset where store.odrim080_strid = odrm023_orgid)
order by odrim080_stracnm
数据库 odrim080_store 有两千数据,odrm023_autoset 有4百万数据的情况下 执行结果为 6.5秒
原因是:前面那个sql要080和023完全关联,这样出的数据量是2千*4百万,然后再distinct
select /*+ rule*/ distinct trim(store.odrim080_strid) odrim080_strid,
trim(store.odrim080_strshowcd) || ' - ' ||
trim(store.odrim080_stracnm) odrim080_stracnm
from odrim080_store store,odrm023_autoset
where 1 = 1
and store.odrim080_strid = odrm023_autoset.odrm023_orgid
AND store.ODRIM080_STATUS = '1'
order by odrim080_stracnm
数据库 odrim080_store 有两千数据,odrm023_autoset 有4百万数据的情况下 执行结果为 16.5秒
后面是用080中的2千条,分别到023里找一下,只要有记录就ok,不需要出023里全部数据。而且080里strid是主键,也就不需要distinct