Oracle数据库g:新的SQL和LSQL功能_第1页
Oracle数据库g:新的SQL和LSQL功能_第2页
Oracle数据库g:新的SQL和LSQL功能_第3页
Oracle数据库g:新的SQL和LSQL功能_第4页
Oracle数据库g:新的SQL和LSQL功能_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle数据库10g中新的SQL和PL/SQL功能议程新的SQL特性

新的PL/SQL特性

PL/SQL的速度是原来的两倍

总结

问答Oracle8OracleSQL

引擎的发展Oracle8iOracle9iOracle9iR2SQL/XML集成(XMLType、URIType等)OLAPDatetime类型ANSI联接CASE表达式XML数据库SQL/XMLW3C标准数据挖掘网络Web服务正则表达式本地数值结构BLAST对象扩展数据插件SQL/Java集成interMedia类型数据和处理复杂性新的SQL特性正则表达式

本地数值结构

LOB增强

集合增强正则表达式简介起源于数学首先在UNIX中计算机化从ed、grep、perl、cgi、web到任何地方多种应用程序HTMLFORMS中的验证生物信息学服务器配置数据挖掘Oracle正则表达式对数据库的本地支持SQL和PL/SQL中的接口基于POSIX标准与GNU、PERL、Java、Xquery等同步

描述数据的模式变为数据的一个属性

数据库内部强大的字符串处理主要特性POSIX扩展的正则表达式接口REGEXP_LIKE 模式是否匹配?REGEXP_SUBSTR 它与什么匹配?REGEXP_INSTR 它在哪里匹配?REGEXP_REPLACE 替换匹配的记录。匹配选项语言环境支持LOB支持REGEXP_LIKE确定模式是否存在。查找名称‘JonStevens‘的变体John或JonSteven或Stevens或Stephen或StephensSELECTc1FROMt1WHEREREGEXP_LIKE(c1,‘Joh?nSte(ph|v)ens?’);JonStevensJohnStephensJohnStevens和DDL一起使用允许使用过滤器的数据,并带检查约束邮政编码(ZIPcode)列是VARCHAR2(5),但可以包含任意的5个字符。

使用视图的查询子集和格式化将电话号码格式化为(xxx)xxx-xxxx

创建基于函数的索引与PL/SQL一起使使用非常强强大的的字符符串处处理功功能src:=REGEXP_REPLACE(src,‘‘<regexp_1>’);src:=REGEXP_REPLACE(src,‘‘<regexp_2>’);src:=REGEXP_REPLACE(src,‘‘<regexp_3>’);可以增增强现现有的的功能能支持PERL缩写提取第第n个子表表达式式替换大大量代代码行行可以简简化字字符串串处理理函数数性能考考虑事事项模式匹匹配可可能很很复杂杂需要编编译成成状态态机词法分分析检查所所有可可能的的分支支,直直到发发现匹匹配每条语语句编编译一一次对于复复杂情情景可可能比比LIKE更快邮政编编码检检查快快5倍倍通常常比等等价的的PL/SQL更快编写快快速执执行的的表达达式本地浮浮点数数据类类型两种新新的数数值数数据类类型BINARY_FLOAT,,BINARY_DOUBLE二进制制浮点点运算算的IEEE754标准是许多多其他他标准准(例例如,,Java、、XML模式))和硬硬件平平台的的一部部分普遍存存在于于商务务智能能、生生命科科学、、工程程/科科学计计算本地浮浮点数数据类类型与与数值值数据据类型型比NUMBER类型效效率更更高硬件运运算/数学学运算算快5––10倍倍占用更更少的的内存存/磁磁盘空空间((5/9字字节节与1––22字字节))BINARY_DOUBLE值范围围更大大(e308与e125))无需类类型转转换((使用用与字字节顺顺序无无关的的存储储格式式)本地浮浮点函函数新的类类型转转换函函数TO_BINARY_FLOAT、TO_BINARY_DOUBLETO_NUMBERSQL函数支支持数值函函数((sin、cos等)聚合函函数((sum、avg、stddev等)分析函函数((sum、avg、stddev等)对SQL、PL/SQL、、Java、XML模式注注册、、ODP.NET和OCI/OCCI的无缝缝支持持本地浮浮点约约束createtablefloating_point_table1(fltNnullbinary_floatconstraintflt_nullnotnull,dblNnullbinary_doubleconstraintdbl_nullnotnull,fltUnqbinary_floatconstraintflt_unqunique,dblUnqbinary_doubleconstraintdbl_unqunique,fltChkbinary_floatconstraintflt_chkcheck(fltChkisnotNaN),dblChkbinary_doubleconstraintdbl_chkcheck(dblChkisnotinfinite),fltPrmbinary_floatconstraintflt_prmprimarykey);*NaN(不是数字字)––e.g.0/0,infinity/infinity本地浮点点约束createtablefloating_point_table2(dblPrmbinary_doubleconstraintdbl_prmprimarykey,fltFrnbinary_floatconstraintflt_frnreferencesfloating_point_table1(fltPrm)ondeletecascade);PL/SQL示例使用欧拉拉级数计计算=sqrt(6*(1+1/2*2+1/3*2+...))使用牛顿顿方法近近似真值值的平方根赋值、加、乘、除、比较、绝绝对值procedureEuler_Pi_Seriesis...beginpi:=one;prev_pi:=zero;prod_over_six:=zero;step:=zero;whilepi-prev_pi>tolerloopprev_pi:=pi;step:=step+one;prod_over_six:=prod_over_six+one/(step*step);prod:=six*prod_over_six;prev_root:=prod;root:=prod/two;whileAbs(root-prev_root)>root_tolerloopprev_root:=root;root:=(root+prod/root)/two;endloop;pi:=root;endloop;endEuler_Pi_Series;subtypeMy_Numberisnumber;zeroconstantMy_Number:=0.0;oneconstantMy_Number:=1.0;twoconstantMy_Number:=2.0;sixconstantMy_Number:=6.0;tolerconstantMy_Number:=0.00000000001;root_tolerconstantMy_Number:=toler/1000.0;rootMy_Number;prev_rootMy_Number;prod_over_sixMy_Number;prodMy_Number;piMy_Number;prev_piMy_Number;stepMy_Number;subtypeMy_Numberisbinary_double;zeroconstantMy_Number:=0.0d;oneconstantMy_Number:=1.0d;twoconstantMy_Number:=2.0d;sixconstantMy_Number:=6.0d;tolerconstantMy_Number:=0.00000000001d;root_tolerconstantMy_Number:=toler/1000.0d;rootMy_Number;prev_rootMy_Number;prod_over_sixMy_Number;prodMy_Number;piMy_Number;prev_piMy_Number;stepMy_Number;PL/SQL示例使用欧拉级数数计算近似300,000次次迭代NUMBER花费约27.7秒BINARY_DOUBLE花费约3.7秒提高倍数:约约7倍LOB增强LOB普遍用于存储储非结构化的的数据(文本本、AVI、基因/蛋白序序列等)LOB性能改善访问内联(<4KB)LOB时获得5倍倍的性能增增益(在9iR2中)

临时LOB使用引用计算算提供了几个数量级的的性能增益在读取时引用用(ReferenceonRead)在写入时复制制(CopyonWrite)超大型LOBTB大小的Lob(8–128TB)DB_BLOCK_SIZE(2–32KB)x(4GB–1)新的DBMS_LOB.GET_STORAGE_LIMIT函数OCI、JDBC和DBMS_LOB现在支持大于于4GB的LOBOCILobRead2()、OCIWriteAppend2()和OCILobWrite2()函数为JDBC和DBMS_LOB提供相同的API集合类型增强强用户定义的类类型、集合类类型和引用类类型简化了结结构复杂的数数据建模集合类型用于于映射实际世世界应用程序序中的包含关关系例如,一个购购物车包含了了许多商品VARRAY增强VARRAY的类型发展CREATETYPEemail_list_typASOBJECT(section_noNUMBER,emailsemail_list_arr);/CREATETYPEemail_varray_typASVARRAY(5)OFemail_list_typ;/ALTERTYPEemail_varray_typMODIFYLIMIT100CASCADE;在临时表中支支持VARRAY列提供应用程序序开发灵活性性嵌套表增强将一个不同的的表空间用于于嵌套表的存存储表带嵌套表的列列的表可以在在表空间之间间分配I/O负载CREATETABLEpurchase_orders(order_items_columnorder_items_typ)NESTEDTABLEorder_items_columnSTOREASorder_items_column_nt(TABLESPACEusers);为嵌套表提供供的ANSISQL多集合操作嵌套表存储无无序的元素集合只包含唯一的的元素多集合可以包含重复复的元素嵌套表上的各各种多集合操操作为嵌套表提供供的多集合操操作Cardinality、Collect、MultisetExcept、MultisetIntersection、MultisetUnion、Powermultiset、Powermultiset_by_Cardinality和Set操作查找热销商品品集合的强大大工具(市场场指数总览分分析)多集合操作示示例createtypecategoriesastableofint;/createtablecarts(c1int,c2categories)

nestedtablec2storeastb1_c2;insertintocartsvalues(1,categories(1,2,3,4));insertintocartsvalues(2,categories(2,4,6));selectt1.c2multisetintersectt2.c2fromcartst1,cartst2wheret1.c1=1andt2.c1=2;categories(2,4)<-frequentset嵌套表比较Equal和NotEqual、In、Submultiset、MemberOf、Empty和Is[Not]ASetSELECT*FROMcustomercWHEREitem_typ(2)MEMBEROFc.freq_set;在PL/SQL中也提供declaretypeTab_tistableofpls_integer;aTab_t:=Tab_t(1,2,3,4,5);beginif3memberofathenShow('member');endif;end;SQL小结Oracle数据库10gSQL引擎聚合来自不同同的分布式数数据源的数据据网格信息无缝地集成Java、XML和基本数据处处理功能一个全面的高高性能和基于于标准(SQL-2003W3C、J2SE、POSIX等)的特性集集简化的应用程程序开发、部部署和管理RAS、可管理性和安安全性议程新的SQL特性新的PL/SQL特性PL/SQL的速度是原来来的两倍总结问答新的PL/SQL特性刚才讨论的所所有SQL语言特性FORALL语句中的稀疏疏绑定数组编译器警告新的Utl_Mail和Utl_Compress程序包FORALL语句中的稀疏疏绑定数组您的PL/SQL表最初是密集集的,

例如如,是由BULKCOLLECT填充的您删除了一些些元素您想将这些元元素插入到某某个表中foralljinINDICESOFsparse_emp_recordsBETWEEN<lb>AND<ub>--optionalinsertintonew_employeesvaluessparse_emp_records(j);FORALL语句中的稀疏疏绑定数组您有一个PL/SQL表(密集或稀稀疏)您想将这些记记录的一个指指定的子集插插入到某个表表中foralljinVALUESOFpointer_tabinsertintonew_employeesvaluesemp_records(j);编译器警告createorreplaceprocedurePisdebuggingboolean:=false;beginifdebuggingthenDbms_Output.Put_Line('debugging');endif;endP;/SP2-0804:ProcedurecreatedwithcompilationwarningsShowErrorsPLW-06002:Unreachablecodealtersessionsetplsql_warnings='ENABLE:ALL';编译器器警告告createorreplaceprocedureP(iinoutclob)isbegini:='x';endP;/SP2-0804:ProcedurecreatedwithcompilationwarningsShowErrorsPLW-07203:parameter'I'maybenefitfromuseoftheNOCOPYcompilerhintaltersessionsetplsql_warnings='ENABLE:PERFORMANCE';新提供供的程程序包包Utl_Mail它的API反映了了,比比如说说,NetscapeCommunicator的最终终用户户的思思维模模式无需SMTP协议的的知识识(与使用用Utl_Smtp相比))确保简简单化化的一一些限限制Utl_Compress提供了了一个个API来压缩缩和解解压缩缩RAW或BLOB((服务器器端))议程新的SQL特性新的PL/SQL特性PL/SQL的速度度是原原来的的两倍倍总结问答PL/SQL编译和和执行行101PL/SQL源代码前端IR==Diana后端对象代码==MCodePVM全新的的后端端10g引进了了一个个全新新的后后端,,又叫叫做优优化代代码生生成器器它全面面地查查看源源代码码所表表达的的内容容,然然后删删除对对最终终的正正确结结果确确实没没有影影响的的所有有计算算提供了了实现现巨大性能的的潜力力全新的的后端端在9iR2中的ORACLE可执行行文件件中,,新的的代码码生成成器与与旧的的代码码生成成器并并存,一个允允许在在两者者之间间进行行选择择的开开关两者都都曾在在回归归测试试中使使用因此我我们保保证它它是安安全的的!我们没没有将将这个个开关关提供供给客客户重要的的pvm升级删除了了过时时的指指令增加了了新的的指令令例如one-shotmulticoncatenate简化了了用于于使用用PVM指令的的系统统实施经经过调调整的的指令令的C例程改进了了本地编译数据库库中的的DLL对于数数据库库管理理员,,配置置更加加简单单改进了了生成成的C代码让我们们修改改其工工作方方式……PL/SQL源代码前端IR==Diana后端对象代码==MCodePVMPL/SQL编译和和执行行101对象代码==MCode或本地计算机代码硬件性能实实验结结果由PL/SQL小组进进行的的测试试Beta程序测测试由Oracle的应用用程序序部进进行的的测试试由PL/SQL小组进进行的的测试试17个个自自包含含的PL/SQL程序的的基准准测试试套件件设计用用来实实践大大范围围的结结构和和编程程习惯惯一些测测试选选择用用来演演示特特定的的优化化器效效果例如,,从一一个循循环中中删除除一个个常量量赋值值由PL/SQL小组进进行的的测试试下一张张幻灯灯片显显示了了每一一个程程序在在9iR2INTERPRETED和10gNATIVE中的速速度9iR2中速度度相同同10g中显示示了两两种测测量方方式的的完成成CPU时间之之比由PL/SQL小组进进行的的测试试大多数数测试试程序序速度度提高高超过过2倍倍一些测测试程程序速速度提提高远远超过过2倍倍速度提提高10倍的程程序使使用BINARY_INTEGER,并拥有有特别别易于于优化化的编编程习习惯procedurePis/*constrainedbinary_integersubtypes*/apositiven:=1;bpositiven:=1;cpositiven:=1;dpositiven:=1;beginforjin1..i_nof_iterationsloopb:=j/*constraintcheck*/;d:=42/*constantassignmentwithinaloop*/;c:=d+b/*canbecombined...*/;a:=b+c/*...cnotusedexcepthere*/;endloop;endP;由PL/SQL小组组进进行行的的测测试试下一一张张幻幻灯灯片片显显示示了了更更多多详详细细信信息息基准准是是OracleVersion8.0.6显示示了了8i9iR2INTERPRETED9iR2NATIVE10gINTERPRETED10gNATIVE速度度提提高高的的倍倍数数由PL/SQL小组组进进行行的的测测试试TMI??下一一张张幻幻灯灯片片为为每每一一个个测测试试的的版版本本显显示示了了这这17个个程程序序的的集集合合的的统统计计信信息息::中值值最大大和和最最小小值值第1和和第第3四四分分点点(一半半的的观观察察都都落落在在第第1和和第第3四四分分点点之之间间)由PL/SQL小组组进进行行的的测测试试8i比8.0.6快快9iR2比8i快NATIVE始终终比比INTERPRETED快在9iR2中在10g中10g始终终比比9iR2快INTERPRETED与INTERPRETEDNATIVE与NATIVE由IFS进行行的的Beta程序序测测试试由IFS进行行的的Beta程序序测测试试IFS应用用程程序序基于于web和门门户户技技术术提提供供用用于于制制造造、、供供应应链链管管理理、、客客户户关关系系管管理理、、服服务务供供应应、、财财务务管管理理、、产产品品开开发发、、维维护护和和人人力力资资源源管管理理的的60多多种种企企业业应应用用程程序序组组件件由IFS进行行的的Beta程序序测测试试IFS应用用程程序序广广泛泛使使用用Oracle大多多数数业业务务逻逻辑辑用用PL/SQL编写写约3000个个表表约5000个个视视图图约5000个个程程序序包包约420万万行行PL/SQL代码码所有有的的PL/SQL代码码都都在在数数据据库库中中执执行行10gBeta程序序的的IFS结果果程序1程序22.59x1.76x两个个模模拟拟典典型型应应用用程程序序处处理理的的纯纯PL/SQL测试试程程序序将10gNATIVE与9iR2INTERPRETED进行行比比较较((在在10gBeta1中))“在最最初初的的测测试试中中看看到到的的测测试试结结果果让让我我们们非非常常激激动动。。我我们们希希望望在在真真正正的的基基准准测测试试情情景景中中看看到到同同样样出出色色的的测测试试结结果果。。””10gBeta程序序的的IFS结果果1.18x使用用大大量量的的SQL对真真正正的的应应用用程程序序情情

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论