Oracle分区表详细讲解PPT课件
《Oracle入门》PPT课件
• 最近使用的数据字典数据
– 共享池由两个关键的与性能相关的内存结 构组成:
• 库高速缓存
• 数据字典高速缓存
– 共享池的大小由 SHARED_POOL_SIZE 决定
ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;
.
19
库高速缓存(Library Cache)
– 存储最近使用的 SQL 和 PL/SQL 语句信 息
Database user
.
27
服务进程
– 直接与 Oracle 服务器互相作用的一个程 序
– 执行产生的调用并返回结果
– 可以是专有模式或共享服务器模式
Connection established
用户进程
服务进程
Session created Oracle server
Database user
Oracle10G数据库
.
1
数据库管理员是一个或一组全面负责管理和控制数据 库系统的人员。
简称:DBA (Data Base Administrator)
• 了解ORACLE数据库的体系结构
• 负责数据库管理系统的安装和升级
• 启动和关闭数据库
• 管理和监控数据库用户
• 管理数据库特权
• 管理存储空间
.
28
后台进程
维护并且强制物理和内存结构之间关联:
– 强制后台进程:
DBWn
PMON
CKPT
LGWR
SMON
– 可选后台进程:
ARCn
LMDn
QMNn
CJQ0
LMON
RECO
Dnnn Snnn
LMS LCKn
ORACLE数据库分区表
tengyc@
五.分区表的修改:
分区数据的移动:
将分区的数据移动到另一个表空间上。 用于将分区移动到其它磁盘上。 减少分区碎片。 产生新的数据段、 清除旧的数据段。
SQL>Alter Table Employee Move Partition P1 Tablespace Sales_data;
TABLESPACE。
tengyc@
创建分区表举例:
SQL>Create table Employee( name varchar2(20), identification number(11), birth_date date, salary number(7,2), location char(50)) PARTITION BY RANGE(salary) (PARTITION p1 VALUES THAN (500) TABLESPACE ts1, PARTITION p2 VALUES THAN (800) TABLESPACE ts2, PARTITION p3 VALUES THAN (1000) TABLESPACE ts3, PARTITION p4 VALUES THAN (MAXVALUE) TABLESPACE ts4 );
tengyc@
五.分区表的修改:
删除分区:
SQL>Alter Table Employee Drop Partition p4;
SQL>Alter Table Employee Truncate Partition p4;
tengyc@
五.分区表的修改:
ORACLE分区表、分区索引详解
ORACLE分区表、分区索引详解ORACLE分区表、分区索引ORACLE对于分区表⽅式其实就是将表分段存储,⼀般普通表格是⼀个段存储,⽽分区表会分成多个段,所以查找数据过程都是先定位根据查询条件定位分区范围,即数据在那个分区或那⼏个内部,然后在分区内部去查找数据,⼀个分区⼀般保证四⼗多万条数据就⽐较正常了,但是分区表并⾮乱建⽴,⽽其维护性也相对较为复杂⼀点,⽽索引的创建也是有点讲究的,这些以下尽量阐述详细即可。
1、类型说明:range分区⽅式,也算是最常⽤的分区⽅式,其通过某字段或⼏个字段的组合的值,从⼩到⼤,按照指定的范围说明进⾏分区,我们在INSERT数据的时候就会存储到指定的分区中。
List分区⽅式,⼀般是在range基础上做的⼆级分区较多,是⼀种列举⽅式进⾏分区,⼀般讲某些地区、状态或指定规则的编码等进⾏划分。
Hash分区⽅式,它没有固定的规则,由ORACLE管理,只需要将值INSERT进去,ORACLE会⾃动去根据⼀套HASH算法去划分分区,只需要告诉ORACLE要分⼏个区即可。
分区可以进⾏两两组合,ORACLE 11G以前两两组合都必须以range作为⼀级分区的开头,ORACLE⽬前最多⽀持2级别分区,但这个级别已经够我们使⽤了。
我这只以最简单的分区⽅式创建分区来说明问题,就拿range分区来说明问题吧(基本创建语句如下):CREATE [url=]TABLE[/url] TABLE_PARTITION(COL1 NUMBER,COL2 VARCHAR2(10))partition by range(COL1)(partition TAB_PARTOTION_01 values less than (450000),partition TAB_PARTOTION_02 values less than (900000),partition TAB_PARTOTION_03 values less than (1350000),partition TAB_PARTOTION_04 values less than (1800000),partition TAB_PARTOTION_OTHER values less THAN (MAXVALUE));这个分区表创建了四个定长分区,理想情况下,存储450000条数据,扩展分区是超过这个数额的分区,当发现扩展分区有数据的时候,可以进⾏将扩展分区做SPLIT操作,这个后⾯说明,这⾥先说⼀下⼀些常⽤的分区表查询功能,我们先插⼊⼀些数据进去。
2024版oracle系列培训ppt课件
Oracle PaaS服务为企业提供数据库、应用开发和集成、大数据分析等云平台,加速企业数字 化转型。
Oracle Cloud软件即服务(SaaS)
Oracle提供丰富的SaaS应用,如ERP、CRM、HCM等,满足企业不同业务需求,降低企业 运营成本。
Oracle在大数据处理中的应用实践
数据库安全管理
安全管理策略Leabharlann 阐述Oracle数据库的安全管理策略,包括用户权限管理、 角色管理、数据加密和安全审计等方面的内容。
数据加密与传输安全
讲解Oracle数据库的数据加密技术和传输安全机制,包括 透明数据加密(TDE)、SSL/TLS加密通信等,保障数据的 机密性和完整性。
用户与权限管理
详细介绍如何管理Oracle数据库的用户和权限,包括用户 的创建、授权和撤销等操作,确保只有授权用户才能访问数 据库资源。
TKPROF等,帮助管理员及时发 现和定位性能问题。
SQL优化
详细讲解SQL优化的方法和技巧, 包括SQL语句的编写规范、索引 设计原则、执行计划分析和优化 等,提高SQL语句的执行效率。
系统优化
提供系统层面的优化建议,包括 内存分配、磁盘I/O优化、网络 配置调整等,提升整个数据库系
统的性能表现。
的集合,是数据管理的高级阶段。
数据库的发展历程
02
从文件系统到层次、网状数据库,再到关系数据库和非关系数
据库。
Oracle数据库的特点与优势
03
高性能、高可用性、可扩展性、安全性等。
Oracle数据库体系结构
01
02
03
04
物理存储结构
数据文件、控制文件、重做日 志文件等。
Oracle的临时表、分区表、分区索引
Oracle的临时表一、表的种类1:永久表:非私有数据,需要DML锁。
2:临时表:临时表的定义对所有会话都是可见的,处理事务或会话期存在的私有数据,不需要DML锁,对于临时表的DML语句不生成重做日志,临时表占用临时表空间,临时表的数据是自动删除的,在临时表上建的索引也是临时的。
二、临时表的种类1:事物型临时表:在事务期间数据存在,事务结束后数据被自动删除。
2:会话型临时表:在会话期间数据存在,会话结束后数据被自动删除。
三、临时表的限制1:不能分区,不能是索引组织表或簇。
2:不能指定关于临时表的外键约束。
3:不支持并行DML或并行查询。
4:不支持分布式事务处理。
5:不能指定段存储语句、嵌套表存储语句或并行语句四、建立临时表的语法1:建立关系表2:建立对象表3:并行语句Oracle的分区表一、什么是分区表Oracle可以将大表或索引分成若干个更小更方便管理的部分,每一部分称为一个分区,这样的表称为分区表。
SQL语句使用分区表比全表或全表索引能提供更好的访问和处理数据。
下图是按周所建分区表示例。
二、使用分区表的限制1:不能分割是簇一部分的表。
2:不能分割含有LONG或LONG RAW列的表。
3:索引组织表IOT不能进行范围分区。
**采用基于规则的优化器时,有会从分区表中受益!三、分区方法1:范围分区(更适合历史数据库)—Oracle8从惟一可用的分区类型按照列的列表的范围分割表;如果是索引组织表,则列的列表就必须是索引组织表主键的子集。
分区关键列的限制:列列表中的列可以是任何一种内置的数据类型,ROWID、LONG、LOB或者TIMESTAMP WITH TIME ZONE除外。
关键字MAXVALUE比任何值都高(含NULL)。
2:散列分区--Oracle8i可用的分区类型指定这个表是按哈希算法分区的,分区的数目应为2的幂。
1)单独散列分区(individual_hash_partitions)及其限制使用子名按照名字指定单个分区,分区名可以匆略。
oracle分区表详解
oracle分区表详解⼀、分区表的概述:Oracle的表分区功能通过改善可管理性、性能和可⽤性,从⽽为各式应⽤程序带来了极⼤的好处。
通常,分区可以使某些查询以及维护操作的性能⼤⼤提⾼。
此外,分区还可以极⼤简化常见的管理任务,分区是构建千兆字节数据系统或超⾼可⽤性系统的关键⼯具。
分区功能能够将表、索引或索引组织表进⼀步细分为段,这些数据库对象的段叫做分区。
每个分区有⾃⼰的名称,还可以选择⾃⼰的存储特性。
从数据库管理员的⾓度来看,⼀个分区后的对象具有多个段,这些段既可进⾏集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当⼤的灵活性。
1、分区表的优点:(1)由于将数据分散到各个分区中,减少了数据损坏的可能性;(2)可以对单独的分区进⾏备份和恢复;(3)可以将分区映射到不同的物理磁盘上,来分散IO;(4)提⾼可管理性、可⽤性和性能。
2、什么时候⽤分区表(1) 单表过⼤,超过⼀定范围,建议以g计算表,均可考虑⽤分区(2)历史数据据需要剥离的(3)查询特征⾮常明显,⽐如是按整年、整⽉或者按某个范围!3、分区表的类型1、range分区,按范围2、list分区,列举分区3、hash分区,根据hash值进⾏的散列分区4、复合分区,9i开始,Oracle就包括了2种复合分区,RANGE-HASH和RANGE-LIST。
在11g,Oracle⼀下就提供了4种复合分区:RANGE-RANGE、LIST-RANGE、LIST-HASH和LIST-LIST。
⼆、创建分区的举例1、range分区create table p_table(obj_id number(10),object_id number(10),object_name varchar2(128),owner varchar2(30),object_type varchar2(19),created date)partition by range (obj_id)(partition obj_id1 values less than (20000),partition obj_id2 values less than (40000),partition obj_id3 values less than (60000),partition obj_id4 values less than (80000),partition obj_id5 values less than (99999));2、list分区create table l_table(obj_id number(10),object_id number(10),object_name varchar2(128),owner varchar2(30),segment_type varchar2(19),created date)partition by LIST(segment_type)(partition l_type1 values ('LOBINDEX') tablespace my_space1,partition l_type2 values ('VIEW') tablespace my_space2,partition l_type3 values ('TABLE') tablespace my_space2);3、hash分区create table h_table(obj_id number(10),object_id number(10),object_name varchar2(128),owner varchar2(30),object_type varchar2(19),partition by hash(object_id)( partition h_objid1,partition h_objid2,partition h_objid3,partition h_objid4);4、复合分区Oracle11g⼀下就提供了4种复合分区:RANGE-RANGE、LIST-RANGE、LIST-HASH和LIST-LIST。
Oracle分区表详解
Oracle分区全解一、Oracle分区简介ORACLE的分区是一种处理超大型表、索引等的技术。
分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。
分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过屏蔽故障数据的分区,还增加了可用性。
二、Oracle分区优缺点优点:增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。
缺点:分区表相关:已经存在的表没有方法可以直接转化为分区表。
不过Oracle 提供了在线重定义表的功能。
三、Oracle分区方法范围分区:范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。
如根据序号分区,根据业务记录的创建日期进行分区等。
Hash分区(散列分区):散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。
List分区(列表分区):当你需要明确地控制如何将行映射到分区时,就使用列表分区方法。
与范围分区和散列分区所不同,列表分区不支持多列分区。
如果要将表按列分区,那么分区键就只能由表的一个单独的列组成,然而可以用范围分区或散列分区方法进行分区的所有的列,都可以用列表分区方法进行分区。
范围-散列分区(复合分区):有时候我们需要根据范围分区后,每个分区内的数据再散列地分布在几个表空间中,这样我们就要使用复合分区。
复合分区是先使用范围分区,然后在每个分区内再使用散列分区的一种分区方法(注意:先一定要进行范围分区)范围-列表分区(复合分区):范围和列表技术的组合,首先对表进行范围分区,然后用列表技术对每个范围分区再次分区。
ORACLE分区表的概念及操作
ORACLE分区表的概念及操作此文从以下几个方面来整理关于分区表的概念及操作: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点4.表分区的几种类型及操作方法5.对表分区的维护性操作. (1.) 表空间及分区表的概念表空间:是一个或多个数据文件的集合,所有的数据对象都存放在指定此文从以下几个方面来整理关于分区表的概念及操作:1.表空间及分区表的概念2.表分区的具体作用3.表分区的优缺点4.表分区的几种类型及操作方法5.对表分区的维护性操作.(1.) 表空间及分区表的概念表空间:是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表,所以称作表空间。
分区表:当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。
表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。
( 2).表分区的具体作用Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。
通常,分区可以使某些查询以及维护操作的性能大大提高。
此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。
分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。
每个分区有自己的名称,还可以选择自己的存储特性。
从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。
但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用SQL DML 命令访问分区后的表时,无需任何修改。
什么时候使用分区表:1、表的大小超过2GB。
2、表中包含历史数据,新的数据被增加都新的分区中。
(3).表分区的优缺点表分区有以下优点:1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。
Oracle Partitioning –数据分区
复合分区示例
CREATE TABLE orders( ordid NUMBER, orderdate productid NUMBER,
quantity NUMBER)
Add
may04
Drop
本地索引
查询的自动分区忽略、其它分区数据不受影响
极大地提高大数据量的访问速度
查询上海市某企业在5月份 的某比交易的详细信息 ( 提高性能近6000倍)
分区对应用是透明的 自动忽略与访问无关的分区 实现分区间的并行查询 显著提高访问大表时的性能
交易信息表(6000个分区)
...
DEC OCT DEC DEC NOV NOV OCT OCT DECNOV NOVNOV OCTOCT DEC NOV NOV OCT OCT OCT 2003 2003 2003 2003 2003 2003 2003 2003 20032003 2003 2003 20032003 2003 2003 2003 2003
ORDERS
ORDERS
欧洲 USA 一月 大型表
数据持续增长 难以管理
二月
一月
二月
分区
分而治之 简化管理 提高性能
组合分区
提高性能 增强满足业务需求 的灵活性
对应用程序透明
Oracle数据分区是一种逻辑分区
• •
共享的体系架构 不受硬件架构的限制
• 支持SMP, MPP, Cluster, Grid
分区索引
• 本地索引
本地索引是其分区方式与其所在基础表的分区方式一模一样的索引。本 地索引的每个分区仅对应于其所在基础表的一个分区。
• 全局分区索引
全局分区索引是使用不同于其所在表的分区键进行分区的索引,其所在表可以是 分区表或非分区表。全局分区的索引可以使用范围或散列分区进行分区。例如, 某个表可以按月份进行范围分区,因此具有十二个分区,而该表上的索引则可以 使用不同的分区键进行范围分区,从而具有不同的分区数量。
oracle ppt 课件
Oracle门店管理系统实现门店的进销存管理、员工排班、销售 分析等功能,提升门店运营效率和客户满意度。
Oracle会员管理系统实现会员信息管理、积分兑换、数据分析 等功能,提高会员忠诚度和商家营销效果。
Oracle数据库的性能优化
根据实际应用需求和系统资源情况,进行性能优化,包括内存优化、磁盘优化等。
Oracle数据库的管理与维护
Oracle数据库的备份与恢复
01
定期备份Oracle数据库,并制定相应的恢复策略,以防止数据
丢失。
Oracle数据库的安全管理
02
包括用户管理、权限管理和审计等,以确保数据的安全性和完
3
Oracle数据库的应用领域
广泛应用于金融、电信、制造、零售等各个行业 ,为企业提供数据存储、处理和分析服务。
Oracle数据库的体系结构
01
Oracle数据库的物理结构
包括数据文件、控制文件、重做日志文件等,这些文件组成了Oracle数
据库的物理存储结构。
02
Oracle数据库的逻辑结构
包括表空间、段、区、块等,这些逻辑结构定义了数据在物理存储上的
Oracle中间件应用场景
介绍Oracle中间件在各个应用场景中的解决方案和 案例。
Oracle开发工具
Oracle开发工具概述
介绍Oracle开发工具的种类和功能。
Oracle开发工具特点
总结Oracle开发工具的特点和优势,如易用性、集成性、高效性等。
Oracle开发工具应用场景
介绍Oracle开发工具在各个应用场景中的解决方案和案例。
oracle 分区表完全讲解.ppt
什么时候使用分区表
1、表的大小超过2GB。 2、表中包含历史数据,新的数据被增加都
新的分区中。
表分区有以下优点
1、改善查询性能:对分区对象的查询可以 仅搜索自己关心的分区,提高检索速度。
2、增强可用性ቤተ መጻሕፍቲ ባይዱ如果表的某个分区出现故 障,表在其他分区的数据仍然可用;
3、维护方便:如果表的某个分区出现故障, 需要修复数据,只修复该分区即可;
分区表的分类
1、范围分区 2、列表分区 3、散列分区 4、组合范围散列分区 5、复合范围散列分区
范围分区
范围分区将数据基于范围映射到每一个分 区,这个范围是你在创建分区时指定的分 区键决定的。这种分区方式是最为常用的, 并且分区键经常采用日期。如:将销售数 据按照月份进行分区
使用范围分区时,需要注意以下几个规则
• PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE( '01- MAY -2003','DD-MON-YYYY')) TABLESPACEORD_TS01,
• PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE( '01-JUN-2003','DD-MON-YYYY')) TABLESPACE ORD_TS02,
• PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE( '01-JUL-2003','DD-MON-YYYY')) TABLESPACE ORD_TS03
•)
• MAXVALUE • CREATE TABLE RangeTable
oracle表分区详解
oracle表分区详解Oracle表分区详解Oracle表分区是指将一张表(table)拆分为多个部分(partition),每个部分相互独立,根据不同的属性进行存储。
通过表分区,可以大幅提高查询效率和降低维护成本,也有助于加快数据库备份和恢复。
下面我们来详细了解一下Oracle表分区。
一、表分区的概念表分区是将一张大表(table)拆分为多个小表(partition)。
每个小表可以拥有自己独立的数据存储形式,这些小表可以根据一些共同的属性进行划分。
例如按时间,按地区进行划分。
通过表分区,可以实现多个子表之间的相互独立,从而降低维护成本,提高查询效率。
二、表分区的类型表分区可以分为水平分区和垂直分区两种类型。
1. 水平分区水平分区是将一张表根据某一属性分成多个分区,每个分区存储不同的数据。
常见的分区属性有时间、地区、业务范围等。
水平分区可以减少查询的数据量,提高查询效率,同时也可以降低备份和恢复的难度。
2. 垂直分区垂直分区是将一张表拆分成多个表,每个表存储不同的属性。
在垂直分区中,每张小表都包含唯一一些行数据,但是这些小表通过某些公共的列或者键连接起来。
垂直分区比较适合需要存储大型的或者变量长度的字段的表,可以有效的提高查询效率。
三、表分区的策略表分区的策略是根据表的特点选择分区方式。
表的分区策略可以采用以下几种方式:基于时间:按照时间划分,例如按天、按周、按月、按季度等。
基于列:按照列的属性划分,例如根据地区、类型、状态等进行划分。
基于范围:按照数值的范围划分,例如按价格、数量、面积等进行划分。
基于哈希:采用哈希算法划分,可以保证数据均衡,但是不适用于区间查询。
基于列表:根据给定的列值列表来定义分区。
四、表分区的优点表分区的优点包括以下几个方面:1. 提高查询效率:表分区可以减少查询的数据量,提高查询效率。
2. 便于备份和恢复:表分区可以将数据拆分开来,便于备份和恢复。
3. 分区维护简单:分区之间相互独立,可以进行单独的维护。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/1/16
12
范围分区的特点
• 最早、最经典的分区方法 • Range分区通过对分区字段值的范围进行分区 • Range分区特别适合于按时间周期进行数据的存储:日、周、月、年
6
范围分区
范围分区将数据基于范围映射到每一个分区, 这个范围是你在创建分区时指定的分区键 决定的。这种分区方式是最为常用的,并 且分区键经常采用日期。如:将销售数据 按照月份进行分区
2020/1/16
7
范围分区时的规则
使用范围分区时,需要注意以下几个规则
•1、每一个分区都必须有一个VALUES LESS THEN子 句,它指定了一个不包括在该分区中的上限值。分区 键的任何值等于或者大于这个上限值的记录都会被加 入到下一个高一些的分区中。
2020/1/16
8
范围分区例1
假设有一个CUSTOMER表,表中有数据 200000行,我们将此表通过 CUSTOMER_ID进行分区,每个分区存储 100000行,我们将每个分区保存到单独的 表空间中,这样数据文件就可以跨越多个 物理磁盘
2020/1/16
9
• CREATE TABLE CUSTOMER
Oracle数据库的表分区
2020/1/16
1
分区表的由来
• 当表中的数据量不断增大,查询数据的速度就 会变慢,应用程序的性能就会下降,这时就应 该考虑对表进行分区。表进行分区后,逻辑上 表仍然是一张完整的表,只是将表中的数据在 物理上存放到多个表空间(物理文件上),这样 查询数据时,不至于每次都扫描整张表。
(
CUSTOMER_IDMARY KEY,
FIRST_NAME VARCHAR2(30) NOT NULL,
LAST_NAME VARCHAR2(30) NOT NULL,
PHONE VARCHAR2(15) NOT NULL,
EMAIL VARCHAR2(80),
( idd INT PRIMARY KEY , iNAME VARCHAR(10), grade INT
) PARTITION BY RANGE (grade) (
PARTITION part1 VALUES LESS THEN (1000) TABLESPACE Part1_tb,
PARTITION part2 VALUES LESS THEN (MAXVALUE) TABLESPACE Part2_tb );
• 从应用程序的角度来看,分区后的表与非分区 表完全相同,使用 SQL DML 命令访问分区后 的表时,无需任何修改。
2020/1/16
2
分区表概述
• 大数据对象(表、索引)被分成小物理段
• 当分区表建立时,记录基于分区字段值被 存储到相应分区
• 分区字段值可以修改.(row movement enabled)
• 分区可以存储在不同的表空间
• 分区可以有不同的物理存储参数
• 分区支持IOT表、对象表、LOB字段
Varrays等
2020/1/16
3
什么时候使用分区表
• 表的大小:当表的大小超过2GB,或对于 OLTP系统,表记录超过1000万时,都应该考 虑对表进行分区
• 数据访问特性:基于表的大部分查询应用,只 访问表中少量的数据。对于这样的表进行分区 ,可充分利用分区排除无关数据查询的特性
(
PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE('01- MAY -200 3','DD-MON-YYYY')) TABLESPACEORD_TS01,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUN-2003',
•2、所有分区,除了第一个,都会有一个隐式的下限 值,这个值就是此分区的前一个分区的上限值。
•3、在最高的分区中定义了MAXVALUE。MAXVALU E代表了一个不确定的值。这个值高于其它分区中的 任何分区键的值,也可以理解为高于任何分区中指定 的VALUE LESS THEN的值,同时包括空值。
• 数据维护:按时间段删除成批的数据,对于这 样的表需要考虑进行分区,以满足维护需要
2020/1/16
4
使用分区表的好处
• 性能 – Select和DML只访问指定分区,提高检索速度 – 并行DML操作 – Partition-wise join
• 可管理性 – 历史数据清除 – 提高备份性能 – 指定分区的数据维护操作
• 可用性
– 将故障局限在分区中
– 缩短恢复时间
• 分区目标优先级
– 高性能->数据维护能力->实施难度->高可用性(故障屏蔽能力)
2020/1/16
5
分区表的分类
1、范围分区 (Range) 2、列表分区 (List) 3、散列分区 (Hash) 4、组合范围散列分区 5、复合范围散列分区
2020/1/16
STATUS CHAR(1)
)
PARTITION BY RANGE (CUSTOMER_ID)
(
PARTITION CUS_PART1 VALUES LESS THAN
(100000) TABLESPACE CUS_TS01,
PARTITION CUS_PART2 VALUES LESS THAN
(220200/10/16000) TABLESPACE CUS_TS02
10
• 按时间划分
CREATE TABLE ORDER_ACTIVITIES
(
ORDER_ID NUMBER(7) NOT NULL,
ORDER_DATE DATE,
TOTAL_AMOUNT NUMBER,
CUSTOTMER_ID NUMBER(7),
PAID
CHAR(1)
)
PARTITION BY RANGE (ORDER_DATE)
'DD-MON-YYYY')) TABLESPACE ORD_TS02,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUL-2003', 'DD-MON-YYYY')) TABLESPACE ORD_TS03
)
2020/1/16
11
• MAXVALUE • CREATE TABLE RangeTable