关于ORACLE 分区表的介绍

分区表是一种优化大数据管理的技术,提高查询效率和系统可用性。常见分区类型包括范围分区、哈希分区和列表分区,适用于不同场景。范围分区适合时间范围查询,哈希分区则用于均衡数据分布。转换普通表为分区表可通过导出导入、子查询插入、分区交换和在线重定义等方法。数据库管理员可利用DBA_PART_TABLES等数据字典视图监控分区表。
摘要由CSDN通过智能技术生成

1.分区表有什么优点?分区表有哪几类?如何选择用哪种类型的分区表?

当对表进行分区后,逻辑上是一张完整的表,只是将表中的数据在物理上可能存放到多个表空间或物理文件上。当查询数据时,不需要全表扫描。Oracle可以将大表或索引分成若干个更小、更方便管理的部分,每一部分称为一个分区,这样的表称为分区表。SQL语句使用分区表比全表能提供更好的数据处理与访问的性能。即便是个别分区不可用,其他分区仍然可用。,这称为分区独立性。

分区表的一些限制条件:

  • 簇表不能进行分区
  • 不能分割含有LONG 或LONG RAW列的表。
  • 索引组织表不能进行范围分区。

(1)何时考虑分区?对大表进行分区,将有益于大表操作的性能和大表的数据的维护。官方说通常当表的大小超过2GB,或者对于OLTP系统,当表的记录超过1000万条时,都应考虑对表进行分区。

(2)分区表有什么优点?分区表有如下的优点:

1)增强可用性:如果表的一个分区由系统故障而不能使用,那么表的其余好的分区仍可用使用。

2)减少关闭时间:如果系统故障只影响表的一部分分区,那么只有这部分分区需要修复,可能比整个大表修复花的时间更少。

3)维护轻松:单管管理每个分区比管理单个大表要轻松得多。

4)均衡I/O:可以把表的不同分区分配到不同的磁盘来平衡I/O,改善性能。

5)改善性能:对大表的查询、增加、修改等操作可以分解到表的不同分区来并行执行,可使运行速度更快。

6)分区对用户透明,最终用户感觉不到分区的存在。

(3)有哪些类型的分区?如何选择用哪种类型的分区表?Oracle的分区可以分为:

1)范围分区(RANGE PARTITION)

2) 哈希分区(HASH PARTITION)

3) 列表分区(LIST PARTITION)

4)复合分区(组合分区)

5)INTERVAL分区(间隔分区)

6)系统分区

(1)RANGE(范围)分区 在如下几种情况下会使用到范围分区:

1)频繁地被一个时间范围谓词扫描。

2)维护一个时间滚动的数据窗口(Rolling Window Of Data)

3) 保存历史数据的表。

(2) HASH分区,HASH分区有如下的优点:

  • 提高了大表的高可用和可管理性。
  • 可以避免数据倾斜,将数据均匀地分布在多个物理设备上,最大化I/O吞吐量。
  • 分区修剪和分区智能连接。
  • 要求分区键高基数列。
  • 分区修剪不支持基于分区字段的范围查询,只支持等值查询或IN-LIST查询。

下面几种情况用HASH分区比RANGE分区更好。

  • 事先不知道需要将多少数据映射到给定范围的时候。
  • 分区的范围大小很难确定,或者很难平衡的时候。
  • Range分区使数据得到不期望的聚集时。
  • 性能特性,如并行DML、分区修剪和分区连接很重要的时候。

(3) LIST(列表)分区 列表分区(LIST PARTITION)提供了一种按照字段的值来进行分区的方法,这种方法非常适合有高重复率字段值的表。

列表分区有如下特点:

  • 列表值是离散的
  • 列表值是无序的
  • 分区键仅能包含一个列
  • 列表值是低基数的

3.分区表常用数据字典视图有哪些?

Oracle分区表相关数据字典视图如下:

  • 显示数据库所有分区表:DBA_PART_TABLES
  • 显示表分区信息,显示数据库所有分区表的详细分区信息:DBA_TAB_PARTITIONS.
  • 显示子分区信息,显示数据库所有复合分区表的子分区信息:DBA_TAB_SUBPARTITIONS
  • 显示分区别,显示数据库所有分区表的分区列信息:DBA_PART_KEY_COLUMNS
  • 显示子分区列,显示数据库所有分区表的子分区列信息:DBA_SUBPART_KEY_COLUMNS

4.普通表转换为分区表有哪些办法?

将普通表转换成分区表有以下4种方法:

1)导出、导入方法(Export/Import Method)

2)  子查询插入方法(Insert With a Subquery)

3)分区交换方法(Partition Exchange Method)

4)在线重定义方法(DBMS_REDEFINITION Method)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值