知识大全 深入浅出Oracle11g分区功能

Posted

篇首语:从来好事天生俭,自古瓜儿苦后甜。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 深入浅出Oracle11g分区功能相关的知识,希望对你有一定的参考价值。

深入浅出Oracle11g分区功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  数据库分区是每种数据库都需具备的关键功能之一 几乎所有的Oracle数据库都使用分区功能来提高查询的性能 Oracle g分区功能可以简化数据库的日常管理维护工作 大大减轻了DBA(数据库设计和管理工程师)的工作负担

  Oracle g中提供的新功能增添了更多的数据库分区功能选择 使分区功能在使用和维护上变得更加灵活;同时 Oracle g也提供更多的分区功能选择

  Oracle 版最早推出了表格的分区功能 使Oracle成为了第一个支持物理分区的RDBMS供应商 SQLServer( )和DB 都只支持逻辑分区(使用UNION ALL视图) 而SQL Server 并不直接支持物理分区(需通过分区功能) Oracle的分区功能选择很受用户群的欢迎 因为分区功能能够改善应用程序的性能 可管理性和可用性 其中最重要的是DSS应用程序 由于该功能受到广泛的喜爱 因此每次发布新版本都会有功能上的不断提高

  下面的表格列举了随版本更新而不断提高的分区功能(高级)

  

  分区功能类型

  现在让我们简单的讨论一下以上每个分区功能的特性

  范围分区 数据根据分区键值范围指定进行分布 比如 如果我们选择一个日期列作为分区键 分区 JAN 就会包括所有包含从 JAN 到 JAN 之间的分区键值(假设分区的范围是从这个月的第一天到这个月的最后一天)

  散列分区 将散列算法用于分区键来确定指定行所在的分区 这个分区方法能够保持I/O平衡 但是不可用于范围查询或不等式查询

  列表分区 数据根据分区键值列表指定进行分布 这个分区方法对于离散的列表非常有用 如地区 国家等

  组合分区 结合 个数据分区方法可以成为一个组合分区方法 先用第一个数据分布方法对表格进行分区 然后再用第二个数据分区方法对每个分区进行二次分区 组合分区方法有以下组合

  组合范围散列分区 组合范围列表分区 组合范围范围分区 组合列表范围分区 组合列表列表分区 组合列表散列分区

   G支持对索引组织表(索引和数据一起的表格)进行范围分区 列表分区或散列分区 但是不支持对其进行组合分区

  Interval分区 G版本引入的interval分区范围分区的一种增强功能 可实现equi sized范围分区的自动化 创建的分区作为元数据 只有最开始的分区是永久分区 随着数据的增加会分配更多的部分 并自动创建新的分区和本地索引

  SQL>CREATETABLESALES_PART

  (TIME_ID NUMBER REGION_ID NUMBER

  ORDER_ID NUMBER

  ORDER_DATE DATE

  SALES_QTY NUMBER( )

  SALES_AMOUNT NUMBER( )

  )

  PARTITIONBY RANGE (ORDER_DATE)

  INTERVAL (NUMTOYMINTERVAL( month )

  (PARTITION p_first VALUES LESS THAN ( JAN );

  Numtoyminterval功能把数字转换成 INTERVAL YEAR TO MONTH文字( YEAR or MONTH )

  进行Interval分区的表格有传统的范围部分和自动生成的interval部分 进行范围分区的表格可以通过使用ALTER TABLE命令的SETINTERVAL选项扩展成为Interval分区的表格

  外键分区 分区方案的引入是以相关表格通过相同的分区策略获得好处作为前提设想的 Detail表格通过PK FK关系从master表格继承相同的分区方案 我们不需要把分区键存储在detail表格中 通过关键词 PARTITION BY REFERENCE detail表格获得master表格的分区方案

  虚拟列分区 在之前的Oracle版本里 只有分区键存在与表格中才可以实现对表格的分区功能 而Oracle G的新功能 虚拟列 打破了这一限制 允许通过使用表格中的一列或多列的表述确定分区键 而虚拟列只作为元数据存储

  例如 在表格ACCOUNTS中添加一个虚拟列

  SQL>CREATE TABLE ACCOUNTS

  (acc_no number( ) not null

  acc_name varchar ( ) not null

  acc_loc varchar ( )

  acc_branch number( ) generated always as (to_number(substr(to_char(acc_no) )));

  使用虚拟列作为分区键

  SQL>CREATE TABLE accounts

  (acc_no number( ) not null

  acc_name varchar ( ) not null

  acc_loc varchar ( )

  acc_branch number( ) generated always as (to_number(substr(to_char(acc_no) )))

  partition by list (acc_branch);

  分区建议器

cha138/Article/program/Oracle/201311/18976

相关参考

知识大全 Oracle11G之初体验数据中心自动化等功能

Oracle11G之初体验数据中心自动化等功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  O

知识大全 Oracle分区功能提高应用程序性能

Oracle分区功能提高应用程序性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle

知识大全 Oracle内存数据库11g和高速缓存11g上市

Oracle内存数据库11g和高速缓存11g上市  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!北京

知识大全 Oracle11g默认目录结构

Oracle11g默认目录结构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracleg主流

知识大全 Oracle 11g安装图文攻略

Oracle11g安装图文攻略  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  呵呵花了一个多小时

知识大全 oracle11G空表默认不导出解决

oracle11G空表默认不导出解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ORACLE

知识大全 Oracle11g数据库移植

Oracle11g数据库移植  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库版本频繁更新不

知识大全 Oracle11g新特性之AutoMemoryManagement

Oracle11g新特性之AutoMemoryManagement  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 小议Oracle11g的自治事务(六)

小议Oracle11g的自治事务(六)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  自治事务提

知识大全 小议Oracle11g的自治事务(二)

小议Oracle11g的自治事务(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  自治事务实