我有按月手动分区的物化视图
create materialized view MV_MVNAME_201001 as
select MONTH_ID, AMOUNT, NAME
from TABLE_NAME_201001
201002,201003,...,201112,2012,2009
现在我需要从这些视图中查询,只获取所需的视图。
是否有可能,不涉及客户端?
示例查询
select AMOUNT, NAME
from (
--union all mview
)
where month_id >= 201003
and month_id < 201101
应该只查看MV_MVNAME_201003 .. MV_MVNAME_201012
答案 0 :(得分:0)
物化视图是“物化”。它是一个包含数据的物理表。
生成物化视图的查询仅在刷新数据时使用,而不是在查询时使用。
Oracle不知道数据来自何处(在您的情况下 - 来自几个不同表的联合),除非您以某种方式指定它,例如 - 列。
但在您的特定情况下,您有列month_id,您可以对表进行分区。 指定月份或月份范围时,它将仅扫描相应的分区。
<强> UDPATE 强>: 现在我更了解你的问题,但我不能给你一个更好的答案。你的问题与mviews无关。 Mviews可以是桌子。你的问题是一样的。您只想从一些表中选择动态。为此创建了分区。可能老狗知道一招......