Sign-up....

怎样让一个表的数据与一个视图的数据保持同步

我有一个视图,与多个表相关连,并使用了union,在查询这个视图的时候非常慢。我想用一个临时表与这个视图保持数据同步,提高查询效率,有什么可行的方案吗。谢谢。

[81 byte] By [msdn] at [2007-8-15 10:40:06]
# 1 Re: 怎样让一个表的数据与一个视图的数据保持同步

視圖有數据嗎?你這麽做與直接用臨時表來關聯多個表有什麽區別?

selecthis at 2006-4-2 0:03:12 >
# 2 Re: 怎样让一个表的数据与一个视图的数据保持同步

樓上的,你這麽寫作到數據同步了,但是查詢效率呢?

selecthis at 2006-4-2 0:13:57 >
# 3 Re: 怎样让一个表的数据与一个视图的数据保持同步

楼主,你表里数据更新速度快不,如果不是很快,建议楼主采用cenlmmx(学海无涯苦作舟) 的方法。创建物化视图的时候可以考虑用start with sysdate next sysdate+2选项,要数据库自己来刷新数据,其中sysdate+2是下次刷新的时间,楼主可以根据实际情况设定。

zhzhl0 at 2006-4-2 11:01:50 >
# 4 Re: 怎样让一个表的数据与一个视图的数据保持同步

selecthis(小懒蛋)指的效率问题是什么,我如果10分钟刷新一次数据,可以吗,如果我有10万条记录,刷新一次要多长时间?

kevinc at 2006-4-2 11:02:59 >
# 5 Re: 怎样让一个表的数据与一个视图的数据保持同步

create materialized view mv_test

refresh complete

start with sysdate next sysdate+2

as select * from v_test;

zhzhl0 at 2006-4-2 11:03:03 >
# 6 Re: 怎样让一个表的数据与一个视图的数据保持同步

我的数据更新速度还是比较快的,不知道刷新一次物理化视图是不是要花很多的时间。

kevinc at 2006-4-2 11:05:32 >
# 7 Re: 怎样让一个表的数据与一个视图的数据保持同步

可以作到每10分钟刷新一次

start with sysdate next sysdate+10/24*60

影响刷新的时间有很多因素,比如硬件的配置,

访问的是本地表还是远程表,等等。

zhzhl0 at 2006-4-2 11:09:41 >
# 8 Re: 怎样让一个表的数据与一个视图的数据保持同步

刚才试了一下,我原来的视图里面有子查询,我执行的时候告诉我不能有子查询。

create materialized view mpubresume

refresh complete

start with sysdate next sysdate+2

as

select * from baseuser

kevinc at 2006-4-2 11:16:45 >
# 9 Re: 怎样让一个表的数据与一个视图的数据保持同步

如果是本地表,10w条数据应该不要好长时间,

建议楼主先用cenlmmx(学海无涯苦作舟) 的方法测试下

还可以用增量刷新的方式,但需要在源表上建立日志表

zhzhl0 at 2006-4-2 11:16:48 >
# 10 Re: 怎样让一个表的数据与一个视图的数据保持同步

zhzhl0(太极)能看看我发给你的消息吗。

kevinc at 2006-4-2 11:19:34 >
# 11 Re: 怎样让一个表的数据与一个视图的数据保持同步

你不可以在基表上直接创建物化视图吗?

zhzhl0 at 2006-4-2 11:19:42 >

Oracle

All Classified