数据表数据量接近4000万,表中只有主键索引无其他索引,创建物化视图进行预查询过滤
--每次查询往往只需要4000万条中的几百条数据,因此先创建物化视图过滤并得到一个几千到几万条数据的结果,并 创建监听动态更新。
drop materialized view log on fs_budgetpayout_detail ; --不是view名,是表名
create materialized view mv_fs_budgetpayout_detail --创建物化视图 mv_fs_budgetpayout_detail
build immediate
refresh fast
on commit
enable query rewrite
as
select t.fiscal, t.co_code, t.project_code, t.outlay_code , sum(t.payout_amt) payout_amt
from fs_budgetpayout_detail t
where t.period != 0
and t.period != 13
group by t.fiscal, t.co_code, t.project_code,t.outlay_code
create materialized view log on fs_budgetpayout_detail with rowid,sequence(payout_amt,fiscal,co_code,project_code,period,outlay_code) including new values;