已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
a p p l i c a t i o n o fp a r t i t i o nt a b l ea n dm a t e r i a l i z e dv i e wi n q u e r ya n a l y s i s ad i s s e r t a t i o ns u b m i t t e df o rt h ed e g r e eo fm a s t e r c a n d i d a t e :c h e nj u n s u p e r v i s o r :p r o f w a n gs h i h u i h u b e iu n i v e r s i t y w u h a n ,c h i n a 2川0 叭96洲3 7i川川1洲y 湖北大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任 何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的 法律后果由本人承担。 论文作者签名:胁健 日期:玉i o 年否月弓日 学位论文使用授权说明 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即: 按照学校要求提交学位论文的印刷本和电子版本;学校有权保存并向国家有关 部门或机构送交论文的复印件和电子版,并提供目录检索与阅览服务;学校可以允 许采用影印、缩印、数字化或其它复制手段保存学位论文;在不以赢利为目的的前 提下,学校可以公开学位论文的部分或全部内容。( 保密论文在解密后遵守此规定) 作者签名:际隹 指导教师签名跏磋_ 日期:2 。啤莎月弓臼 日期:沙7 口6 哆 摘要 随着数据库技术的发展,越来越多的行业的建立了自己的数据库系统。随着企业的 不断扩张及管理信息的不断完善,企业数据库往往需要管理几百g 甚至几t 的数据量。 随着数据库数据量的不断增大,数据库的性能优化越来越凸显其重要性。数据库性能优 化的好坏与否直接影响到上层应用的响应时间和用户对上层应用软件的评价。 分区表技术及物化视图技术是数据库性能优化的重要手段。分区表可以将对大表的 操作分解到对各个小表的操作,这样可以利用分区表并行处理提高查询效率及资源利用 率。分区表除了能提高查询效率,此外分区表技术还有利于维护及i o 访问平衡。 物化视图技术则是针对那些常用的查询,预先计算并保存表连接或聚集等耗时较多 的操作的结果到物化视图中,这样大大减轻了数据库服务器的访问压力,消除了每次查 询需要做的计算。建立物化视图后,用户查询可以不用计算直接从物化视图中得到结果, 这样节省了很多时间。 利用分区表技术对表进行横向分区,若有像物化视图那样预先保存计算结果的需 求,分区表则无法做到,这时就需要分区表和物化视图技术的联合应用。 本文归纳总结了( 1 ) 分区表的各种形式,如范围分区,散列分区,列表分区,组合 分区等分区方式以及其相应的适用范围;( 2 ) 全局分区索引和局部分区索引的区别及其 优缺点;( 3 ) 物化视图和物化视图日志的相关理论,运行机制及相关操作。 本文在最后结合实际项目给出了分区表技术,物化视图技术在实际中的具体应用及 其联合应用,并给出了性能分析。 关键词:分区表;分区索引;物化视图;o r a c l e a bs t r a c t w i t ht h ed e v e l o p m e n to fd a t a b a s et e c h n o l o g y , m o r ea n dm o r ei n d u s t r ye s t a b l i s h e di t s o w nd a t a b a s e s y s t e m w i t ht h ec o n t i n u o u se x p a n s i o no fb u s i n e s sa n dc o n t i n u o u s i m p r o v e m e n to fm a n a g e m e n ti n f o r m a t i o n ,e n t e r p r i s ed a t a b a s ea l w a y sm a n a g eaf e wh u n d r e d go rtd a t a w i t ht h eg r o w i n ga m o u n to fd a t a b a s ed a t a , d a t a b a s ep e r f o r m a n c et u n i n gm o r e a n dm o r ei m p o r t a n t d a t a b a s ep e r f o r m a n c eo p t i m i z a t i o no fg o o do rb a dd i r e c t l ya f f e c t st h e r e s p o n s et i m eo ft h eu p p e ra p p l i c a t i o na n du s e ra p p l i c a t i o ns o f t w a r eo nt h ee v a l u a t i o no ft h e u p p e r p a r t i t i o nt a b l et e c h n o l o g ya n dm a t e r i a l i z e dv i e wt e c h n o l o g ya r ei m p o r t a n tm e a n so f o p t i m i z i n gd a t a b a s ep e r f o r m a n c e p a r t i t i o nt a b l ec a nb ed e c o m p o s e di n t oo p e r a t i o n so nt h e o p e r a t i o no ft h ev a r i o u ss m a l lt a b l e ,t h i sm e t h o dc a l lu s ep a r a l l e lp r o c e s s i n gt oi m p r o v et h e q u e r ye f f i c i e n c ya n dr e s o u r c eu t i l i z a t i o n i na d d i t i o nt o ,p a r t i t i o nt a b l ea l s oh e l pt om a i n t a i n a n di 0a c c e s sb a l a n c e m a t e r i a l i z e dv i e wt e c h n o l o g yi su s e df o rt h o s ec o m m o nq u e r i e s c a l c u l a t e di na d v a n c e a n ds a v et h er e s u l to ft i m e c o n s u m i n gt a b l ej o i n so ra g g r e g a t i o nt ot h em ac r e a t i o no f m a t e d a l i z e dv i e w s p a r t i t i o n t a b l ec a nn o tr e p l a c em a t e r i a l i z e dv i e ww h e nw ea r e r e q u i r e dt os a v et h e c a l c u l a t er e s u l t e t h i sr e q u i r e dt h ep a r t i t i o nt a b l ea n dm a t e r i a l i z e dv i e wt e c h n o l o g yi n c o m b i n a t i o n t h ef o l l o w i n ga r es u m m a r i z e di nt h i sa r t i c l e :( 1 ) v a r i o u sf o r m so ft h ep a r t i t i o nt a b l ea n d t h e i ra p p l i c a t i o n ,s u c ha sr a n g ep a r t i t i o n ,h a s hp a r t i t i o n ,l i s tp a r t i t i o n , c o m b i n a t i o np a r t i t i o na l l s oo n ( 2 ) t h ed i f f e r e n c eb e t w e e ng l o b a li n d e xa n dl o c a li n d e x ( 3 ) t h er e l e v a n tt h e o r i e s , m e c h a n i s m sa n dr e l a t e do p e r a t i o n so f m a t e r i a l i z e dv i e w sa n dm a t e r i a l i z e dv i e wl o g s f i n a l l y , t h i sp a p e rg i v et h ea p p l i c a t i o na n dp e r f o r m a n c ea n a l y s i so fp a r t i t i o nt a b l ea n d m a t e d a l i z e dv i e w k e y w o r d s :p a r t i t i o nt a b l e ;p a r t i t i o ni n d e x ;m a t e d a l i z e dv i e w ;o r a c l e i l 目录 摘要i 目录i i l 第一章引言1 1 1 选题背景和意义1 1 2 国内外研究现状1 1 3 本文工作2 1 4 论文结构2 第二章分区表技术3 2 1 分区表3 2 1 1 范围分区4 2 1 2 散列分区6 2 1 3 列表分区7 2 1 4 范围散列组合分区9 2 1 5 范围列表组合分区1 0 2 1 6 间隔分区1 2 2 1 7 引用分区1 3 2 2 分区表索引1 6 2 2 1 全局索引1 6 2 2 2 局部分区索引1 6 第三章物化视图技术1 8 3 1 运行机制1 8 3 1 1 概念1 8 3 1 2 参数1 9 3 1 3 查询重写2 0 3 1 4 刷新2 2 3 2 物化视图日志2 4 第四章分区表及物化视图在查询分析中的应用2 6 4 1 分区表技术的应用2 6 4 2 分区索引的应用2 8 4 3 物化视图的应用3 0 i i i 4 4 分区表及物化视图的联合应用3 3 第五章总结与展望3 6 参考文献3 7 致 身 3 9 攻读硕士学位期间发表的论文及参与的项目4 0 发表论文4 0 参与的项目4 0 i v 第一章引言 1 1 选题背景和意义 第一章引言 随着全球经济进入信息分析时代,信息对企业的生存和发展发挥着越来越重要的作 用。企业不断扩张,企业管理信息也在不断完善,企业数据库往往需要管理几百g 甚至 几t 的数据量。随着数据库数据量的不断增大,数据库的性能会越来越差,数据库的访 问会越来越慢,性能低下不仅会危害应用程序的可接受程度,由此得到的低下的生产力 还会导致更低的投资回报率。由此,数据库的性能优化越来越凸显其重要性。数据库性 能优化的好坏与否直接影响到上层应用的响应时间和用户对上层应用软件的评价。 数据库优化技术有很多种,对于大数据量的数据库来说,分区表技术和物化视图技 术是两种经常被选择用来提高性能的技术。分区表可以将对大表的操作分解到对各个小 表的操作,这样可以利用并行处理提高查询效率及资源利用率。建立分区表后,从程序 开发人员的角度来看,分区后的表和以前的单个表没有区别,上层应用不用做改变。建 立合适的分区表,可以使数据库系统的性能有极大的提高。 而物化视图技术则是针对那些常用的查询,预先计算并保存表连接或聚集等耗时较 多的操作的结果到物化视图中,这样大大减轻了数据库服务器的访问压力,也消除了每 次查询需要做的计算。 1 2 国内外研究现状 目前o r a c l e ,s q ls e r v e r ,s y b a s e 均支持分区表技术。 目前s q ls e r v e r 最新版本是s q ls e r v e r2 0 0 8 。到s q ls e r v e r2 0 0 8 ,分区表解决方 案比之前版本更加完善,利用s q ls e r v e r2 0 0 8 可以方便的加入新填充的分区也可以删 除旧分区。因为是在表范围之外来管理分区的,所以添加分区不会对上层应用造成影响。 自从引入分区技术以来,o r a c l e 公司在推出每个新的版本都会增加新的分区方法。 o r a c l el l g 中可以使用任何组合创建组合分区,o r a c l el l g 中引用分区、间隔分区、虚拟 列分区以及扩展的组合分区等增强功能支持无限的分区设计可能性,并提高了可管理 性。o r a c l e 公司致力于不断完善分区技术,确保满足所有的业务需求。 湖北大学硕士学位论文 1 3 本文工作 本文的研究目标定位在分区表技术和物化视图技术。在研究生期间,我参加了贵 州省地税局综合应用平台项目的开发工作,该系统主要实现税务系统内部信息传递、 交流共享、分析利用,并且实现了业务操作的流程化、动态化、规范化,极大的提高了 全省地方税务系统内部的工作效率,使各种制度得到有效的的实施,使信息资源得到有 效的集中和管理。 在该项目开发过程中,我主要参与了查询分析模块和数据统计模块。在查询分析模 块的开发过程中,大数据量的检索效率一直是查询分析的瓶颈,后来我们团队在不断的 尝试中最终用分区表技术和物化视图技术极大地提高了查询效率。 本文总结归纳了分区表和物化视图技术的相关理论,并结合实际项目实践给出了分 区表及物化视图在项目中的具体实现。 1 4 论文结构 第一章绪论讲述课题背景、来源,国内外研究现状及本文工作。 第二章分区表技术归纳总结了分区表的各种形式,如范围分区,散列分区,列表 分区,组合分区等分区方式及其相应的适用范围,以及全局分区索引和局部分区索引的 区别及其优缺点。 第三章物化视图技术归纳总结了物化视图和物化视图日志的相关理论,运行机制 及相关操作。 第四章分区表及物化视图技术在查询分析中的应用展示了实际项目中分区表和物 化视图在查询分析中的应用及其联合应用,并给出了性能分析。 第五章总结与展望总结了本文所作的工作以及还未完成的工作。 2 第二章分区表技术 第二章分区表技术 2 1 分区表 随着企业的不断扩张及管理信息的完善,企业数据库往往需要管理几百g 甚至几t 字节的数据量。当管理v l d b ( v e r yl a r g ed a t a b a s e ) 数据库时,企业必须要面对大数 据量对存储和性能的影响。分区表( p a t i t i o nt a b l e ) 和分区索引( p a t i t i o ni n d e x ) 正是为 了满足v l d b 系统的需求而设计的。通过使用分区表,允许将一张大表的数据分布到多 个表分区段;通过使用分区索引,允许将一个大索引的数据分布到多个索引分区段。当 使用分区特征时,不同分区彼此独立从而提高表的可用性和性制2 1 。 分区功能通过改善可管理性、系统性能和可用性,这样为应用程序带来了非常多的 好处。通常,分区可以使某些维护操作和查询操作的性能大幅度提高。此外,分区还能 很大程度上简化一些常见的管理任务。分区是构建千兆字节数据库系统或高可用性系统 的重要工具。 由于目前支持分区表技术的属o r a c l e 最强,本文主要讨论o r a c l e 的分区技术。 分区表是按照特定方式逻辑划分大表,最终将其数据部署到几个相对较小的分区段 中。当执行s q l 语句访问分区表时,服务器进程可以直接访问某个或某几个分区段, 而不需要访问整张大表的全部数据,从而提高性能。例如:当教务处要查询一个数计学 院学生的信息,分区前,要通过遍历全校数据才能得到结果,而将全校数据按学院分成 1 2 部分后,利用分区表的分区修剪特性,此时查询优化器会直接从数据学院分区表 p a r t l 中去查找,这样遍历的数据是之前的十二分之一,性能会大大提高。如图2 1 : 湖北大学硕士学位论文 分区 图2 1 分区表 分区表有如下优点n 1 : ( 1 ) 高可用性,分区表的任何一个或几个分区发生故障不能使用时,不会影响其他 分区的正常使用,这样在一定程度上能保持系统的正常使用。 ( 2 ) 易于维护,分区表的每个分区都可以单独维护,维护每个分区比维护一个大表 要容易的多。往往一个大数据量的表出现故障时,要找出具体问题所在需要耗费大量的 时间。 ( 3 ) 改善性能,原本对大表的增加,删除,查询,修改操作都会分解到对分区的并 行操作,并行处理会使性能大大提高。 ( 4 ) i 0 访问平衡,可以将不同的分区映射到不同的磁盘,这样可以使得i o 压力 分散到各个磁盘上,而不会集中于某个或者某几个磁盘。 o r a c l e 提供了范围分区、散列分区、列表分区、组合分区( o r a c l el o g 中只有范围 散列组合分区,范围n 表组合分区,o r a c l e1 1 9 中支持任何组合的组合分区) 。 2 1 1 范围分区 范围分区是指按照列值范围将表行的数据分布到不同的分区段中叫。如果表的数据 4 第二章分区表技术 可以按照逻辑范围进行划分,并且在不同范围内数据分布比较均衡,那么可以使用范围 分区。 假设现有一张2 0 0 9 年销售表,其总数据量为1 2 0 g ,每个月平均数据量1 0 g 。如果使 用普通表存储数据,那么1 2 0 g 数据会存放到一个表段中,在统计一个月销售数据时就 需要扫表全表1 2 0 g 数据,但是若使用了表分区段,则可以将1 2 个月的数据分别存放到 不同的分区段中,此时统计1 个月的数据只需要扫描1 0 g 的数据。显而易见,使用范围 分区可以大大降低i o 次数,从而提高i o 性能。如图2 2 : 图2 2 范围分区 建立范围分区时需要指定分区方法、分区列以及每个分区列值的具体范围。如下是 建立范围分区表的示例: 。 c r e a t et a b l e s a l e s 一2 0 0 9 ( c u s t o m e r _ i dn u m b e r ( 3 ) , c u s t o m e r _ c i t yv a r c h a r 2 0o ) , p r o d u c ti dn u m b e r , s a l e s _ c o u n tn u m b e r ( 1o ) , s a l e s d a t ed a t e ) p a r t i t i o nb yr a n g e ( s a l e s _ d a t e ) ( p a r t i t i o nplv a l u e sl e s st h a n ( t o _ d a t e ( 2 0 0 9 - 0 2 - 01 , ) ) t a b l e s p a c es p a c e 0 1 , p a r t i t i o np 2v a l u e sl e s st h a n ( t o _ d a t e ( 2 0 0 9 0 3 0 1 , 5 y y y y - m m d d y y y y - m m d d 湖北大学硕士学位论文 ) ) t a b l e s p a c es p a c e 0 2 , p a r t i t i o np 3v a l u e sl e s st h a n ( t q d a t e ( 2 0 0 9 0 4 0 1 , - ) ) t a b l e s p a c es p a c e 0 3 , p a r t i t i o np 4v a l u e sl e s st h a n ( t o _ d a t e ( 2 0 0 9 0 5 0 1 , ) ) t a b l e s p a c es p a c e 0 4 , y y y y - m m d d y y y y m m d d r 6 心口n i o np 1 0v a l u e sl e s st h a n ( t q d a t e ( 2 0 0 9 1 1 - 0 1 , y y y y - m m d d ) ) t a b l e s p a c es p a c e l 0 , p a r t i t i o npllv a l u e sl e s st h a n ( t q d a t e ( 2 010 01 - 0 1 , y y y y - m m - d d ) ) t a b l e s p a c es p a c e l1 ) 其中,p a r t i t i o nb yr a n g e ( c o l u m n ) 用于指定范围分区以及分区键列,p a r t i t i o n 用于指定分区名,v a l u e sl e s st h a n 用于指定数据范围,t a b l e s p a c e 用于指定分区段 所在表空间。如果有些记录是无法预测范围的,那么可以建立m a x v a l u e 分区,所有不 在指定范围内的数据都会存储到m a x v a l u e 分区中。也可以建立后文提到的间隔分区。 建立范围分区后,在向范围分区表中插入数据时,o r a c l e 会根据分区键的值在相应 分区上插入数据。 2 1 2 散列分区 散列分区是按照o r a c l e 提供的散列函数( h a s h ) 计算列值数据的口1 ,并最终按照函 数结果分区大表数据。如果无法使用范围分区部署大表数据,而为了将数据均匀地分布 到不同分区并提高访问性能,则可以使用散列分区,如图2 3 : s a l e s _ 2 0 0 9 散 图2 - 3 散列分区 建立散列分区时,必须指定分区方法,分区列以及分区个数。 6 第二章分区表技术 同样是2 1 1 1 中的表,在这里用c u s t o m e ri d 键做散列分区,分4 个区: c r e a t et a b l es a l e s _ 2 0 0 9 ( c u s t o m e ri dn u m b e r ( 3 ) , c u s t o m e rc 1 t yv a r c h a m z ( 10 ) , p r o d u c t i dn u m b e r , s a l e s _ c o u n tn u m b e r ( 10 ) , s a l e s d a t ed a t e ) r 虹u r r i o nb yh a s h ( c u s t o m e r _ i d ) ( p a t i t i o np 1t a b l e s p a c es p a c e l , 蹦r i t i o np 21 = a b l e s p a c es p a c e 2 , p 汀i t l 0 np 3t a b l e s p a c es p a c e 3 , 耵- n 气t r r i o np 41 :a b l e s p a c es p a c e 4 ” ) 其中,p a r t i t i o nb y h a s h ( c o l u m n ) 用于指定使用散列分区以及分区键列,p a r t i t i o n 用于指定分区名,t a b l e s p a c e 用于指定分区段所在表空间。 建立散列分区后,在向散列分区表中插入数据时,o r a c l e 会在分区列上使用散列函 数进行运算,然后根据运算结果将数据分布到不同的分区段上。 2 1 3 列表分区 列表分区用于将离散数据有效地部署到不同分区中【1 】。范围分区只能根据列值范围 确定数据分布,而散列分区只能根据散列函数结果均匀分布列数据。如果要将离散数据 分布到不同分区,那么必须采用列表分区方法。假定经常需要以地理位置统计数据,那 么可以使用城市名称对数据进行列表分区。如图2 4 : 7 湖北大学硕士学位论文 图2 - 4 列表分区 当建立列表分区表时,必须要指定分区方法,分区列以及每个分区的相应离散值。 对表s a l e s 一2 0 0 9 ,用c u s t o m e r _ c i t y 键作列表分区。 c r e a t et a b l e s a l e s 。2 0 0 9 ( c u s t o m e r _ e ) u m b e r ( 3 ) , c u s t o m e r c i t yv a r c h a r 2 ( 10 ) , p r o d u c t i dn u m b e r , s a l e s c o u n tm b e r ( 1 0 ) , s a l e s d a t ed a t e ) p ! l u 王t n i o nb yl i s t ( c u s t o m e r _ c i t y ) ( p a r t i t i o np 1v a l u e s ( 北京,上海) t a b l e s p a c es p a c e l , p a r t i t i o np 2v a l u e sc 湖北,湖南) t a b l e s p a c es p a c e 2 , p a r t i t i o np 3v a l u e s ( 广州,香港) t a b l e s p a c es p a c e 3 , p a r t i t i o np 4v a l u e s ( 。山东,山西) t a b l e s p a c es p a c e 4 , ) 其中,p a r t i t i o nb yr a n g e ( c o l u m n ) 用于指定列表分区以及分区键列,p a r t i t i o n 用于指定分区名,v a l u e s 用于指定列表分区的列表值,t a b l e s p a c e 用于指定分区段所 在表空间。 在做列表分区之前要确定分区列所有的值,一旦插入的数据不在分区范围内,操作 8 第二章分区表技术 将失败。所以一般推荐建列表分区时创建d e f a u l t 分区。 建立列表分区后,在向列表分区表中插入数据时,o r a c l e 会将分区列上的数据与已 有的离散值匹配,然后根据匹配结果将数据插入到对应的分区段上。 2 1 4 范围散列组合分区 范围散列组合分区是范围分区和散列分区的组合,它首先按照列值范围进行逻辑的 范围分区,然后在每个范围分区的基础上再按照散列函数进行散列分区。当不同范围的 数据分布比较均匀时,可以直接使用范围分区。但对于某些表来说,尽管数据总体是按 照特定范围分布的,但每个范围的数据可能分布不均匀,在这种情况下,为了有效控制 数据分布,并提高性能,可以考虑使用范围散列组合分区。假设要统计每个月的销售 情况,还需要统计特定月特定产品的销售情况,那么可以采用范围散列组合分区。如图 2 - 5 : 图2 - 5 范围一散列组合分区 c r e a t et a b l e s a l e s 一2 0 0 9 ( c u s t o m e r i dn u m b e r ( 3 ) , c u s t o m e r _ c i t yv a r c h a r 2 ( 10 ) , p r o d u c t i dn u m b e r , s a l e s c o l 丌盯n u m b e r ( 10 ) , s a l e sd a t ed a t e , 9 湖北大学硕士学位论文 ) p a r t i t i o nb y r a n g e ( s a l e s _ d a t e ) s u b p a t i t i o nb y h a s h ( p r o d u c t _ i d ) s u b p a r t i t i o n s4 s t r o ei n ( s p a c e l ,s p a c e 2 ,s p a c e 3 ,s p a c e 4 ) ( p a r t i t i o np1v a l u e sl e s st h a n ( t q d a t e ( 2 0 0 9 0 2 - 01 ,y y y y - m m d d t ) ) , p a r t i t i o np 2v a l u e sl e s st h a n ( t q d a t e ( 2 0 0 9 0 3 - 0 1 ,y y y y - m m - d d ) ) , p a r t i t i o np 3v a l u e sl e s st h a n ( t q d a t e ( 2 0 0 9 - 0 4 0 1 ,y y y y - m m - d d - ) ) , p a r t i t i o np 4v a l u e sl e s st h a n ( t q d a t e ( 2 0 0 9 - 0 5 0 1 ,y y y y - m m - d d ”, p a r t i t i o np 1 0v a l u e sl e s st h a n ( t o _ d a t e ( 2 0 0 9 - l l 0 1 , y y y y - m m d d ) ) , p a r t i t i o np 1 1v a l u e sl e s st h a n ( t q d a t e ( 2 0 1 0 - 0 1 - 0 1 , y y y y - m m d d - ) ) ) 其中p a r t i t i o nb yr a n g e ( c o l u m n ) 用于指定范围分区以及分区列,s u b p a r t i t i o nb y h a s h ( c o l u m n ) 用于指定散列分区以及子分区列,s u b p a r t i t i o n s 用于指定子分区个数, s t o r ei n 用于指定子分区段所在表空间,p a r t i t i o n 用于指定主分区的分区名,v a l u e s 用于指定主分区的数值范围。 建立范围散列组合分区后,在向范围散列组合分区表中插入数据时,必须为主分 区列和子分区列提供数据。在执行i n s e r t 操作时,数据库会根据主分区列和子分区列 将数据插入到相应的分区段。 2 1 5 范围列表组合分区 范围列表组合分区是范围分区和列表分区的组合,它首先按照列值范围进行逻辑意 义的范围分区,然后在每个范围分区的基础上再按照离散值进行列表分区。假设经常需 要有效地统计每个月的信息,还需要统计特定月特定地区的信息,那么可以采用范围 l o 第二章分区表技术 列表组合分区。如图2 6 : l :。0 9 年整年数据 围分区一 图2 - 6 范围列表组合分区 c r e a t et a b l es a l e s 2 0 0 9 ( c u s t o m e r i dn u m b e r ( 3 ) , c u s t o m e r _ c i t yv a r c h a r 2 ( 1o ) , p r o d u c ti dn u m b e r , s a l e s c o u n tn u m b e r ( 10 ) , s a l e s d a t ed a t e , ) p a r t i t i o nb yr a n g e ( s a l e s _ d a t e ) s u b p a r t i t i o nb yl i s t ( c u s t o m e r _ c i t y ) ( p a r t i t i o np 1v a l u e sl e s st h a n ( t o _ d a t e ( 2 0 0 9 - 0 2 0 1 ,。y y y y - m m d d ) ) ( s u b p a r t i t i o np 1 1v a l t m s ( 北京,上海) , s u b p a r t i t i o np 1 2v a l u e s ( 湖北,湖南) , s u b p a r t i t i o np 1 3v a l u e s ( 广州,香港) , s u b p a r t i t i o np 1 4v a l u e s ( d e f a u l t ) ) , p a r t i t i o np 2v a l u e sl e s st h a n ( t o _ d a t e ( 2 0 0 9 0 3 0 1 ,y y y y - m m d d ) ) 湖北大学硕士学位论文 ( s u b p a r t i t i o np 2 _ 1v a l u e s ( 北京,上海) , s u b p a r t i t i o np 2 _ 2v a l u e s ( 湖北,湖南) , s u b p a r t i t i o np 2 3v a l u e s ( 广州,香港) , s u b r 螺t r r i o npl4v a l u e s ( d e f a u l t ) ) , p a r t i t i o np llv a l u e sl e s st h a n ( t o _ d a t e ( 2 0 1 0 0 1 - 0 1 ,y y y y - m m d d ) ) ( s u b p a r t i t i o np ll _ lv a l u e s ( 北京,上海) , s u b p a r t i t i o np l1 _ 2v a l u e s ( 湖北,湖南) , s u b p a r t i t i o np l l 一3v a l u e s ( 广州,香港) , s u b p a r t i t i o npll 4v a l u e s ( d e f a u l t ) ) ) o r a c l el l g 中还支持如下组合分区:范围范围组合分区,列表范围组合分区,列 表散列组合分区,列表列表组合分区。 其他组合分区跟上面2 种组合分区类似,由于篇幅有限,本文就不对其他组合分区 做详细介绍了。 2 1 6 间隔分区 间隔分区是o r a c l e1 1 9 一个新的分区策略倥1 ,它扩展了范围分区的功能,可以使用 间隔定义来定义同类分区范围。当分区的数据首次插入时,o r a c l e 将根据需要自动创 建分区,而不用显式地指定单独的范围。间隔分区可以大大提高分区表的可管理性。间 隔分区可用于间隔分区表的技术包括间隔、间隔一列表、间隔一散列和间隔一范围。 对于2 1 1 1 中的范围分区,只对2 0 0 9 年的1 2 个月做了分区,若现在要想插入一 条2 0 1 0 - 0 2 1 l 的数据进表s a l e s 一2 0 0 9 ,则无法插入,数据库会提示: 0 r a 一1 4 4 0 0 :i n s e r t e dp a r t i t i o nk e yd o e sn o tm a pt oa n yp a r t i t i o n 使用间隔分区可以很好的解决这个问题。 c r e a t et a b l es a l e s 2 0 0 9 ( 1 2 第二章分区表技术 c u s t o m e r i dn u m b e r ( 3 ) , c u s t o m e rc i t yv a r c h a r 2 ( 10 ) , p r o d u c ti dn u m b e r , s a l e s _ c o u n tn u m b e r ( 10 ) , s a l e s d a t ed a t e ) p a r t i t i o nb yr a n g e ( s a l e s _ d a t e ) i n t e r v a l ( n u m t o y m i n t e r v a l ( 1 ,q v i o n t h ) ) ( p a r t i t i o np 0 1v a l u e sl e s st h a n ( t o _ d a t e ( 2 0 0 9 - 0 2 0 1 ,1 y y y - m m d d ) ) ) ; 这时再向表中插入2 0 1 0 - 0 2 - 11 的数据就不会报错,o r a c l e 会自动创建分区。 s q l i n s e r ti n t 0s a l e s 一2 0 0 9v a l u e s ( 1 ,北京,1 ,1 ,t o _ d a t e ( 2 0 1 0 0 2 11 , y y y y m m - d d ) ) ; 1r o wc r e a t e d s q l s e l e c tt a b l e _ n a m e ,h i g h _ v a l u e ,p a r t i t i o n _ n a m e f r o mu s e r _ t a b _ p a r t i t i o n s w h e r et a ble _ n a m e = s a l e s _ 2 0 0 9 : p a r t i t l 0 nn a m eh i g hv a l u e p 0 1 t 0 _ d a t e ( 2 0 0 9 - 0 2 - 0 10 0 :0 0 :0 0 ,s w w m m - d dh i l 2 4 :m i :s s , n l sc a l e n d a r = g r e g o r i a s y s _ p 4 1t o d a t e ( 2 0 1 0 - 0 3 - 0 10 0 :0 0 :0 0 ,s y y y y 一删一d o h h 2 4 :m i :s s , n l sc a l e n d a r = g r e g o r i a 可以看见o r a c l e 自动建了一个上限为2 0 1 0 - 0 3 一0 1 的分区,并命名为s y s p 4 1 。 2 1 7 引用分区 o r a c l e 最新版本允许子表在没有父表的分区键列的情况下,能够利用父表的分区方 1 3 湖北大学硕士学位论文 式来进行分区。在l l g 以前的版本还没有出现引用分区技术的情况下,子表只有在包含 父表的分区键时,才能建立和父表一样的分区方式,就必须将父表的所有分区键列复制 到子表;此外,引用分区还允许您根据逻辑数据模型自然地对表进行分区,而无需存储 分区键列,从而减少了非规范化的手动开销并节省了空间。引用分区还可以透明地继承 所有分区维护操作,从而将表的逻辑形式从父表更改为子表。此外,引用分区还可以为 父表和子表的同类分区自动进行分区智能联接,从而提高该操作的性能。 c r e a t et a b l ec u s t o m e r s ( c u s t o m e ri dn u m b e rp r i m a r yk e y , c u s t o m e r _ n a m ev a r c h a r 2 ( 2 0 0 ) , r a t i n gv a r c h a r 2 ( 1 ) n o tn u l l ) p a r t i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030水泥机械市场行业市场深度研究与战略咨询分析报告
- 2025新能源交通工具行业市场现状供需研宄及产业发展方向规划报告
- 2025新型防锈材料行业市场需求技术创新市场竞争力技术创新市场需求市场分析报告
- 2025新型纺织材料应用市场分析生产成本需求分析环保趋势预测技术投资规划分析报告
- 2025新型玻璃制造行业市场供需分析及投资评估规划分析研究报告
- 2025新加坡电子商务市场供需分析及投资潜力评估报告
- 保险科技与金融科技的深度融合-洞察及研究
- 纳米结构光热转换效率提升-洞察及研究
- 漂移基因多态性研究-洞察及研究
- 吡喹酮对线粒体能量代谢的干扰研究-洞察及研究
- 妇产科护理学卵巢肿瘤的护理
- 嘉峪关网格员考试真题及答案2025
- 军事智能化基础知识课件
- 跨境电商销售经理岗位职责
- 部队思想骨干培训课件
- 2025年河北大学版(2024)小学信息科技三年级(全一册)教学设计(附目录 P179)
- 古币鉴定培训课件
- 环境信息公示管理制度
- 徐州芯片项目商业计划书
- 新生儿母乳保存指南
- 抵押车赎回协议书
评论
0/150
提交评论