基于物化视图创建分区

物化视图是实际存在的物理表,支持触发器,因此堆表可以使用的方法,物化视图同样适用。有时候对于数据量大的物化视图而言,可以用分区的技术,减少读取数据的范围从而加速查询的速度

1:创建穿件源表插入数据

SQL> create table t3(id number,day_date date);

Table created.

create procedure p6 is

i number;

begin

for i in 1 .. 1000 loop

insert into t3 values(i,trunc(sysdate+i));

end loop;

commit;

SQL> exec p6();

PL/SQL procedure successfully completed.

2:创建物化视图日志

SQL> create MATERIALIZED VIEW log on t3;

create MATERIALIZED VIEW log on t3

*

ERROR at line 1:

ORA-12014: table 'T3' does not contain a primary key constraint

SQL> alter table t3 add  constraint pk_id primary key(id);

Table altered.

SQL>  create MATERIALIZED VIEW log on t3 with primary key including new values;

Materialized view log created.

Note:可以看到物化视图是基于主键

3:创建分区的物化视图

SQL> create materialized view mv_t3

2      partition by range(day_date)

3        interval(numtoyminterval(1, 'month'))

4        (

5        PARTITION P1 VALUES LESS THAN (TO_DATE('20170101', 'YYYYMMDD'))

6        ) tablespace users

7          nologging

8          build immediate refresh FAST

9          WITH PRIMARY KEY

10          on demand

11          enable query rewrite

12          as SELECT id,day_date from t3;

Materialized view created.

Note:采用interval自动的间隔分区,如果分区的间隔是Year,Month,用numtoyminterval函数。如果是day,minute,second,用numtodsinterval函数

4:查看执行计划

SQL> set autotrace on;

SQL> set linesize 300

SQL> select * from mv_t3 where day_date=to_date('20180916','YYYYMMDD');

ID DAY_DATE

---------- ---------

440 16-SEP-18

Execution Plan

----------------------------------------------------------

Plan hash value: 4281692734

------------------------------------------------------------------------------------------------

| Id  | Operation              | Name  | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |

------------------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT       |       |     1 |    22 |     5   (0)| 00:00:01 |       |       |

|   1 |  PARTITION RANGE SINGLE|       |     1 |    22 |     5   (0)| 00:00:01 |    22 |    22 |

|*  2 |   MAT_VIEW ACCESS FULL | MV_T3 |     1 |    22 |     5   (0)| 00:00:01 |    22 |    22 |

------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

2 - filter("DAY_DATE"=TO_DATE(' 2018-09-16 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))

Note

-----

- dynamic sampling used for this statement (level=2)

Statistics

----------------------------------------------------------

0  recursive calls

0  db block gets

4  consistent gets

0  physical reads

0  redo size

599  bytes sent via SQL*Net to client

523  bytes received via SQL*Net from client

2  SQL*Net roundtrips to/from client

0  sorts (memory)

0  sorts (disk)

1  rows processed

SQL> set autotrace off;

Note:可以看到确实用了分区22

基于物化视图创建分区(分区的物化视图)相关推荐

  1. 无法对视图创建索引,因为该视图未绑定到架构

    遇到这个问题,查了一位博主的文章,但是说的不是很详细,在这里说明白一些. 修改此问题 需要在 创建视图语句中加上 with SCHEMABINDING --创建索引视图 create view 视图名 ...

  2. 数据库视图创建及应用

    数据库视图创建及应用 一.视图: 视图是从一个或几个基本表(或视图)导出来的表.它与基本表不同,是一个虚表.数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.所以一旦基 ...

  3. SQL Server 数据库 视图创建

    SQL Server 数据库 视图创建 视图简介: 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口. 常规视图本身并不存储实际的数据,而仅仅是由SE ...

  4. ssas如何创建分区_如何基于SSAS信息创建Excel报告

    ssas如何创建分区 介绍 (Introduction) In SSAS, when I offer Power BI, Reporting Services, PowerPivot or Share ...

  5. oracle物化视图trunc,转载:oracle物化视图介绍

    -- 创建一个基表SQL>CREATETABLETTT1(AINTPRIMARYKEY,BINT);Tablecreated.-- 以TTT1为基表创建一个可更新的MViewSQL>CRE ...

  6. 基于FME的水库功能分区生态红线批量处理方案(从文本到gdb)

    作者:凡江林   QQ:564438737  项目背景 2017年7月,环境保护部办公厅.发展改革委办公厅共同印发<生态保护红线划定指南>(环办生态[2017]48号). (1)问题描述 ...

  7. mysql创建表分区详细介绍及示例

    mysql创建表分区详细介绍及示例 1. 基本概念 1.1 什么是表分区? 1.2 表分区与分表的区别 1.3 表分区有什么好处? 1.4 分区表的限制因素 2. 如何判断当前MySQL是否支持分区? ...

  8. Linux文件系统(文件系统分类、创建磁盘分区、LVM)

    Linux文件系统 文章目录 Linux文件系统 0 背景 1 文件系统分类 1.1 ext 1.2 ext2 1.3 日志系统 1.3.1 ext3文件系统[2001年] 1.3.2 ext4文件系 ...

  9. linux parted新建分区表,Parted 创建 GPT 分区

    对于磁盘的分区表 MBR与GPT区别. MBR:MBR分区表(即主引导记录)大家都很熟悉,是过去我们使用windows时常用的. 所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一 ...

最新文章

  1. 删除SQL数据库中事务日志方法
  2. 阿里大佬告诉我,想学习设计模式,得先学好这些硬核技能
  3. android---am命令
  4. 【免费毕设】基于PHP实现的网上留言管理系统的设计(源代码+论文)
  5. python创建虚拟环境打包_用虚拟环境保存库文件--Python打包-阿里云开发者社区
  6. [转载] 【python第四天】 注释和缩进
  7. 【POJ2069HDU3007】模拟退火算法之最小球/圆覆盖
  8. 《云计算核心技术剖析》读书笔记之一
  9. 毕业设计 基于大数据的社交平台数据爬虫舆情分析可视化系统
  10. elementui生产环境图标加载时偶而乱码
  11. 记一次使用npm命令报错
  12. C#中调用OCX控件
  13. 一阶线性电路暂态分析的三要素法
  14. 常用的前端在线引用JS
  15. 从零开始的MySQL教程——上
  16. 控制台忘记mysql登录密码_许久没登录的MYSQL忘记了密码,这样操作不用重装
  17. android 自定义进度条矩形框,Android 自定义方形进度条
  18. 敏捷个人俱乐部(北京)线下活动 开始报名了!
  19. Discuz论坛系统
  20. Android11vivox21刷机包,vivo X21原版系统刷机包_vivo X21A最新全量升级包更新下载

热门文章

  1. GHM------Gradient Harmonized Single-stage Detector 从梯度的方向来解决样本不均衡的问题
  2. 吐血整理一个月——终于把所有Python库整理齐了.....
  3. txt文本文件数据转ArcGIS中的tif文件
  4. 非常详尽,多图慎入:Wayland与Weston简介
  5. 信息学奥赛对大学计算机专业,关于信息学竞赛学习的几大误区,你必须得知道!...
  6. 技术分享 | ClickHouse StarRocks 使用经验分享
  7. 深耕模具细分领域20载 德惠创新研发领跑行业
  8. 【Linux】通过Mac终端连接虚拟机(ssh root@192.168.31.230)
  9. webpack 的安装与使用
  10. DM数据库windwos和linux环境单机安装部署