这两天给华为做了一个接口表,一个ACCT表240多万数据,一个SERV表250多万的数据,两个表需要关联起来,再给他们,一开始就是感觉数据量很大,直接关联的话,给他们做视图,那样要是查询一条语句还可以,但是不加条件的话,速度慢的可以说是不能查询的,那时无法想象的,但是当时对方只要求了做一个复合索引就可以了,昨天也就这么给他们了,可是今天我测试接口的时候,在sql/plus上做了SELCT * FROM V_JLYY_MOSS,可是查询的时候大约半分钟才出结果,我靠,这样的速度,对方能忍受么,反正我不能忍受,后来就在晚上随便看书的时候,看到有个物化视图,然后仔细抽了两眼,还不错,但是我在自己的本子上做了个测试,效果还好,今天我就把原来那个接口给修改了,在数据库服务器上做了一个物化视图
create materialized view v_jlyy_moss
build immediate
refresh complete start with sysdate
next trunc(sysdate+1)+4/24
enable query rewrite
as
select
a.ismark ismark,
a.jftotal jftotal,
a.jfusable jfusable,
s.devcode devcode,
s.servid servid,
s.acctid acctid,
s.latnid latnid
from acct a ,serv s
where a.acctid = s.servid
由于业务需求,需要足够刷新时间,每天4点跑一次,完成刷新一次,
后来在接口机上有把试图修改了一下,再登陆给华为的用户,查询的时候,我塞,居然和查询普通表里的数据一样,照对方那个要求,但是单条记录速度很慢,因此又建立了符合索引,ok了,count一下之需要1秒多钟,查询0.01秒左右,这是对方完全可以接受的了得了,呵呵,感觉不错,推荐给大家
阅读(1067) | 评论(1) | 转发(0) |