基于可更改的分区表创建动态视图

问题描述

我有一个应用程序,该应用程序从oracle中的一个视图读取,该视图从一个大表中读取,该视图包含函数并与其他表联接。

该视图需要一段时间才能运行,因为该表每个月都会变大。

我尝试按年份对表进行分区,并且变得比以前更快。

我的问题是如何基于可变分区(按年份)创建视图。

解决方法

假设PARTITION_COL是作为分区键的日期列,则可以执行以下操作:

create or replace
view THIS_CURRENT_YEAR as
select *
from  MY_PARTITIONED_TABLE
where PARTITION_COL >= trunc(sysdate,'YYYY')
and PARTITION_COL <  add_months(trunc(sysdate,'YYYY'),12)

通过这种方式,您将在可能的情况下进行分区修剪。