今天接到同事求助,说有一个select query,在oracle上要跑一分多钟,他希望能在5s内出结果,该sql如下: select /*+ parallel(s
今天接到同事求助,说有一个select query,在oracle上要跑一分多钟,,他希望能在5s内出结果,该sql如下:
select /*+ parallel(src, 8) */ distinct
src.systemname as systemname
, src.databasename as databasename
, src.tablename as tablename
, src.username as username
from meta_dbql_table_usage_exp_hst src
inner join dr_qry_log_exp_hst rl on
src.acctstringdate = rl.acctstringdate
and src.queryid = rl.queryid
and src.systemname = rl.systemname
and src.acctstringdate > sysdate - 30
and rl.acctstringdate > sysdate - 30
inner join meta_dr_qry_log_tgt_all_hst tgt on
upper(tgt.systemname) = upper('mozart')
and upper(tgt.databasename) = upper('gdw_tables')
and upper(tgt.tablename) = upper('ssa_slng_lstg_mtrc_sd')
and src.acctstringdate = tgt.acctstringdate
and rl.statement_id = tgt.statement_id
and rl.systemname = tgt.systemname
and tgt.acctstringdate > sysdate - 30
and not(
upper(tgt.systemname)=upper(src.systemname)
and
upper(tgt.databasename) = upper(src.databasename)
and
upper(tgt.tablename) = upper(src.tablename)
)
and tgt.systemname is not null
and tgt.databasename is not null
and tgt.tablename is not null
;