您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 3.Oracle分区技术和11g分区新特性
InsertPictureHereOraclePartitioning–数据分区技术介绍谢伟william.xie@oracle.comChannelSeniorSalesConsultant•数据分区概念•数据分区的好处•Oracle数据分区技术的发展•Oracle11g数据分区的增强功能Agenda支持超大规模海量数据-Oracle10g数据库大大突破数据规模限制Jan1,1984Jan1,1984Jan1,2004Jan1,2004Name,Address,Tel,Zip,Gender,Age,Occupation,Hobbies...Name,Address,Tel,Zip,Gender,Age,Occupation,Hobbies...1000Columns8Exabyte(254)1E=1024P1P=1024T1T=1024G1G=1024M数万个并发用户支持记录数量大记录内容复杂Oracle10g8E超大数据量带来的问题•性能•可管理性•可用性为何要数据分区(DataPartitioning)•表与索引数据的爆炸性增长•在大型数据库系统中表数据量通常10GB•现在表的数据量比以前中等规模的数据库还大!!•超大规模表与索引的要求•部分数据区失败不会对其他数据区造成影响•数据管理操作可在固定的维护窗口下运行•数据大量增长的情况下,保持执行效率•解决方案:DataPartitioning•分而治之分区可以大大改善…-可管理性-性能-可用性数据分区的概念大型表数据持续增长难以管理分区分而治之简化管理提高性能组合分区提高性能增强满足业务需求的灵活性ORDERSORDERS一月二月ORDERS一月二月欧洲USA对应用程序透明•共享的体系架构•不受硬件架构的限制•支持SMP,MPP,Cluster,Grid•完全依赖于业务的需求•高可用性•可管理性•性能•成本•对应用程序透明•有利于各种环境•OLTP•数据仓库•混合负载DBOracle数据分区是一种逻辑分区数据分区的种类Oracle数据库10g•范围分区每个分区都由一个分区键值范围指定(对于一个以日期列作为分区键的表,“2005年1月”分区包含分区键值为从“2005年1月1日”到“2005年1月31日”的行)。•列表分区每个分区都由一个分区键值列表指定(对于一个地区列作为分区键的表,“北美”分区可能包含值“加拿大”“美国”和“墨西哥”)。•散列分区将散列算法用于分区键来确定指定行所在的分区•组合范围散列分区范围和散列分区技术的组合,通过该组合,首先对表进行范围分区,然后针对每个单独的范围分区再使用散列分区技术进一步细分。•组合范围列表分区范围和列表分区技术的组合,通过该组合,首先对表进行范围分区,然后针对每个单独的范围分区再使用列表分区技术进一步细分。分区索引•本地索引本地索引是其分区方式与其所在基础表的分区方式一模一样的索引。本地索引的每个分区仅对应于其所在基础表的一个分区。•全局分区索引全局分区索引是使用不同于其所在表的分区键进行分区的索引,其所在表可以是分区表或非分区表。全局分区的索引可以使用范围或散列分区进行分区。例如,某个表可以按月份进行范围分区,因此具有十二个分区,而该表上的索引则可以使用不同的分区键进行范围分区,从而具有不同的分区数量。•全局非分区索引全局非分区索引基本上和非分区表的索引一样。索引结构是不分区的。Oracle分区10年创新数据库版本核心功能Oracle8数据库范围分区Oracle8i数据库散列和组合分区Oracle9i数据库列表分区Oracle9i数据库第2版范围-列表组合分区Oracle数据库10g全局散列索引Oracle数据库10g第2版每个表1M分区CREATETABLESALES(PROD_IDNUMBER,CUST_IDNUMBER,TIME_IDDATE,CHANNEL_IDNUMBER,PROMO_IDNUMBER,QUANTITY_SOLDNUMBER(10,2),AMOUNT_SOLDNUMBER(10,2))TABLESPACESALES_TS;SALES_TS举例–非分区表SALES举例–分区表SALESCREATETABLESALES(PROD_IDNUMBER,CUST_IDNUMBER,TIME_IDDATE,CHANNEL_IDNUMBER,PROMO_IDNUMBER,QUANTITY_SOLDNUMBER(10,2),AMOUNT_SOLDNUMBER(10,2))PARTITIONBYRANGE(TIME_ID)(PARTITIONsales01valueslessthan('01-Feb-2004')TABLESPACESALES_TS01,PARTITIONsales02valueslessthan('01-Mar-2004')TABLESPACESALES_TS02,PARTITIONsales03valueslessthan('01-Apr-2004')TABLESPACESALES_TS03,PARTITIONsales04valueslessthan('01-May-2004')TABLESPACESALES_TS04,PARTITIONsales05valueslessthan('01-Jun-2004')TABLESPACESALES_TS05,PARTITIONsales06valueslessthan('01-Jul-2004')TABLESPACESALES_TS06,);SALES_TS01SALES_TS02SALES_TS03SALES_TS04SALES_TS05SALES_TS06分区类型…范围分区RangePartitioningSALESCREATETABLESALES(PROD_IDNUMBER,CUST_IDNUMBER,TIME_IDDATE,CHANNEL_IDNUMBER,PROMO_IDNUMBER,QUANTITY_SOLDNUMBER(10,2),AMOUNT_SOLDNUMBER(10,2))PARTITIONBYRANGE(TIME_ID)(PARTITIONsales01valueslessthan('01-Feb-2004')TABLESPACESALES_TS01,PARTITIONsales02valueslessthan('01-Mar-2004')TABLESPACESALES_TS02,PARTITIONsales03valueslessthan('01-Apr-2004')TABLESPACESALES_TS03,PARTITIONsales04valueslessthan('01-May-2004')TABLESPACESALES_TS04,PARTITIONsales05valueslessthan('01-Jun-2004')TABLESPACESALES_TS05,PARTITIONsales06valueslessthan('01-Jul-2004')TABLESPACESALES_TS06);SALES_TS01SALES_TS02SALES_TS03SALES_TS04SALES_TS05SALES_TS06适用于连续/按时间排序的数据分区类型…散列分区HashPartitioningSALESCREATETABLESALES(PROD_IDNUMBER,CUST_IDNUMBER,TIME_IDDATE,CHANNEL_IDNUMBER,PROMO_IDNUMBER,QUANTITY_SOLDNUMBER(10,2),AMOUNT_SOLDNUMBER(10,2))PARTITIONBYHASH(PROD_ID)(PARTITIONsales01TABLESPACESALES_TS01,PARTITIONsales02TABLESPACESALES_TS02,PARTITIONsales03TABLESPACESALES_TS03,PARTITIONsales04TABLESPACESALES_TS04,PARTITIONsales05TABLESPACESALES_TS05,PARTITIONsales06TABLESPACESALES_TS06);SALES_TS01SALES_TS02SALES_TS03SALES_TS04SALES_TS05SALES_TS06适用于不连续/数据记录固定的数据......04-DecSub-104-DecSub-104-NovSub-104-NovSub-104-FebSub-104-FebSub-104-JanSub-104-JanSub-104-MarSub-104-MarSub-1...Sub-2Sub-2Sub-2Sub-2Sub-2Sub-2Sub-2Sub-2Sub-2Sub-2RANGE(TIME_ID)Sub-3Sub-3Sub-3Sub-3Sub-3Sub-3Sub-3Sub-3Sub-3Sub-3HASH(PROD_ID)CREATETABLE…PARTITIONBYRANGE(TIME_ID)SUBPARTITIONBYHASH(PROD_ID)SUBPARTITIONS3…分区类型…组合分区Range-Hash更灵活的分区分区类型…列表分区ListPartitioning•适用于对不连续域的数据分区•更精确的控制数据的分区存储CREATETABLESALES(PROD_IDNUMBER,CUST_IDNUMBER,STATE_CODEVARCHAR2(2),TIME_IDDATE,CHANNEL_IDNUMBER,PROMO_IDNUMBER,QUANTITY_SOLDNUMBER(10,2),AMOUNT_SOLDNUMBER(10,2))PARTITIONBYLIST(STATE_CODE)(PARTITIONsalesEASTvalues(‘MA’,‘CT’,‘NJ’,‘PA’)TABLESPACESALES_TS01,PARTITIONsalesWESTvalues(‘CA’,‘OR’,‘WA’,‘AZ’)TABLESPACESALES_TS02);适用于位置类数据......04-DecEAST04-DecEAST04-NovEAST04-NovEAST04-FebEAST04-FebEAST04-JanEAST04-JanEAST04-MarEAST04-MarEAST...CENTRALCENTRALCENTRALCENTRALCENTRALCENTRALCENTRALCENTRALCENTRALCENTRALRANGE(TIME_ID)WESTWESTWESTWESTWESTWESTWESTWESTWESTWESTLIST(STATE_CODE)CREATETABLE…PARTITIONBYRANGE(TIME_ID)SUBPARTITIONBYLIST(STATE_CODE)SUBPARTITIONS…分区类型…组合分区Range-List更灵活的分区•数据分区概念•数据分区的好处•Oracle数据分区技术的发展•Oracle11g数据分区的增强功能Agenda数据分区技术大大提高访问速度—“有的放矢、并行处理”•分区可以显著提高访问大表时的性能•分区的存在对应用系统是透明的分区忽略技术系统核心自动根据分区情况优化数据访问,忽略无关的数据分区January销售情况表PartitionFebruary销售情况表PartitionMarch销售情况表Partition客户计费表selectsum(amount)FromSalesWhere日期between20-JAN-2004and5-FEB-2004强大的并行处理能力•随着数据库的增长,必须采用并行处理方式以保证响应时间•在数据库中进行并行处理可以显著提高批量操作的性能•批量更新•批量删除•批量插入•并行执行SQL语句•数据动态分片CCPPUUCCPPUUCCPPU
本文标题:3.Oracle分区技术和11g分区新特性
链接地址:https://www.777doc.com/doc-5100422 .html