您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > ACOUG-深入SecureFile—新一代LOB揭秘
分享知识收获快乐实力成就稳健技术创造价值-1-深入SecureFile——新一代LOB揭秘中国Oracle用户组作者:叶熙昌(yexichang)分享知识收获快乐实力成就稳健技术创造价值-2-目录1SecureFileLOB的特点.......................................................................................................................................-3-2使用SecureFile....................................................................................................................................................-3-3BasicFile和SecureFile的架构比较...................................................................................................................-4-3.1可变Chunk...............................................................................................................................................-4-3.2LOBindex................................................................................................................................................-4-3.3空闲空间搜索..........................................................................................................................................-5-3.4STORAGE参数.......................................................................................................................................-5-4SecureFile的物理存储结构................................................................................................................................-6-5两种LOB性能测试比较..................................................................................................................................-12-6总结....................................................................................................................................................................-13-7附录....................................................................................................................................................................-14-8作者介绍............................................................................................................................................................-16-分享知识收获快乐实力成就稳健技术创造价值-3-摘要:从11g开始,Oracle提供了一种新的LOB存储方式——SecureFile。本文详细阐述了SecureFileLOB的特点,使用方法,物理存储结构,并对SecureFile及BasicFile的架构和性能进行了比较。希望能帮助你加深对SecureFile的理解。最近张乐奕(Kamus)在gtalk上问了俺一个问题,为啥SecureFile类型的LOB要比以前的LOB性能要好很多,是不是存储结构上发生了什么变化。这两天抽空看了些资料,现在整理出来算是回答他的问题了。1SecureFileLOB的特点关于11g以前的LOB类型的实现方式可以参考前一段写的一篇博文《CLOB的物理存储结构及语言编码详解》。从11g开始,Oracle提供了一种新的LOB存储方式叫SecureFile,以前旧有的LOB存储方式就叫BasicFile了。Oracle宣称,“SecureFile不仅是新一代LOB,它们还为LOB带来了更多的价值,尤其是以前只能在文件系统领域中获得的特性。SecureFile可以进行加密以确保安全性,可以进行重复消除和压缩以提高存储效率,可以进行缓存(或不进行缓存)以加快访问(或节省缓冲池空间),可以按多个级别记录以减少崩溃后的平均恢复时间。引入SecureFile后,您可以在数据库中存储更多的非结构化文档,而不会导致过多的开销,也不会失去OS文件系统提供的任何重要功能。”简单来说就三条:一、提供了压缩、重复消除、加密等新功能二、比以前的LOB的性能提高很多三、易用性(无需设置CHUNK、PCTVERSION、FREELISTS、FREELISTGROUPS、FREEPOOLS参数)注意:注意:压缩需要OracleAdvancedCompressionOption,加密需要OracleAdvancedSecurityOption,这两个option都是单独购买的,没有包括在EnterpriseEdition里面。2使用SecureFile想要使用SecureFileLOB很简单,只需指定STOREASSECUREFILE子句就行了(测试环境为11gR2):CREATETABLEtst.t11(idnumber,c1CLOB)LOB(c1)STOREASSECUREFILE;Securefile列标明了是否为SecureFile类型的LOB:SELECTTABLE_NAME,SEGMENT_NAME,INDEX_NAME,SECUREFILEFROMDBA_LOBSWHERETABLE_NAME='t11';TABLE_NAMESEGMENT_NAMEINDEX_NAMESECUREFIL-------------------------------------------------------------------------------T11SYS_LOB0000069030C00001$$SYS_IL0000069030C00001$$YES使用SecurefileLOB的表也是自动生成LOBsegment和LOBindex的。但是此时LOBindex只有在使用重复消除功能时才会使用,在其他情况下均不会使用。要注意,SecurefileLOB只能在ASSM的表空间(自动管理的表空间)里创建,不过既然从9i起ASSM表空间就是默认设置了,一般这里不会有多大问题。还要多说一句,只是要求SecureLOB所在的LOB列数据需要存放在ASSM表空间中,而包含LOB列的那个表,你还分享知识收获快乐实力成就稳健技术创造价值-4-是可以放在手动管理的表空间中。想使用SecureFileLOB,对数据库的参数DB_SECUREFILE设置也有一定的要求:1)PERMITTED:数据库的默认参数。指定SecureFile时创建SecureFile类型的LOB;未指定时,或显式指定BasicFile时,创建BasicFile类型的LOB。2)FORCE:无论是否指定SecureFile,强制创建SecureFile类型的LOB。在手动管理的表空间上创建LOB时,无论STORAGE子句是否指定SecureFile,均报ORA-43853错。3)ALWAYS:无论是否指定SecureFile,强制创建SecureFile类型的LOB。在手动管理的表空间上创建LOB时,若STORAGE子句未显式指定LOB类型,创建为BasicFile类型的LOB;若STORAGE子句显式指定SecureFile类型,则也报ORA-43853错。4)NEVER:无论是否指定SecureFile,强制创建BasicFile类型的LOB。指定SecureFile类型特有的功能如压缩,加密,重复消除时,报ORA-43854错。5)IGNORE:无论是否指定SecureFile,强制创建BasicFile类型的LOB。忽略SecureFile类型特有的功能,创建BasicFile类型的LOB。3BasicFile和SecureFile的架构比较3.1可变Chunk首先介绍一下SecureFile中的可变Chunk。大家都知道在BasicFile的LOB中,Chunk的大小是一定的,最小跟DBBlock的大小一样,最大为32KB,这存在一些问题。比如chunk比LOB的数据小很多的情况下,访问LOB就会产生很多IO,而chunk比LOB的数据大很多的情况下,又会产生对存储空间的浪费。而在SecureFile中,chunk的size是可变的,由Oracle自动动态分配,最小跟DBBlock的大小一样,最大为64MB。这样在存储较小的LOB时,使用比较小的chunk;在存储比较大的LOB时,会使用比较大的chunk。注意不是说一个LOB就放在一个chunk里,而是oracle根据LOBdata的数据大小会自动决定chunk数和chunk的size,具体可以看下面“SecureFile的物理存储结构”一节的实验结果。3.2LOBindex在LOB数据的存储方式上,两种LOB也有很大的区别。关于BasicFile的存储方式,在《CLOB的物理存储结构及语言编码详解》一文中有详细的介绍,大概就是表中的LOB字段只存储LOBlocator,指向LOBindex,LOBindex再指向LOBsegment里实际的LOB数据。不难看出,这里增加了一个LOBindex的结构,那么不可避免的,LOBindex就有可能产生竞争,成为瓶颈。在SecureFile中,LOBindex只有在使用重复消除功能时才会使用(关于这个结论的验证方法,在CLOB那篇文章中有记载,这里不再赘述了)。简而言之,SecureFile中只要不使用重复消除功能就没LOBindex什
本文标题:ACOUG-深入SecureFile—新一代LOB揭秘
链接地址:https://www.777doc.com/doc-5516848 .html