Oracle数据库10g:新的SQL和PLSQL功能ppt课件_第1页
Oracle数据库10g:新的SQL和PLSQL功能ppt课件_第2页
Oracle数据库10g:新的SQL和PLSQL功能ppt课件_第3页
Oracle数据库10g:新的SQL和PLSQL功能ppt课件_第4页
Oracle数据库10g:新的SQL和PLSQL功能ppt课件_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、Oracle 数据库 10g中新的 SQL 和 PL/SQL 功能议程新的 SQL 特性新的 PL/SQL 特性PL/SQL 的速度是原来的两倍总结问答Oracle8Oracle SQL 引擎的开展Oracle8iOracle9iOracle9i R2SQL /XML 集成XMLType、URIType 等 OLAPDatetime 类型ANSI 联接CASE 表达式XML 数据库SQL/XMLW3C 规范数据发掘网络Web 效力正那么表达式本地数值构造BLAST对象扩展数据插件 SQL/Java 集成interMedia 类型数据和处置复杂性新的 SQL 特性正那么表达式本地数值构造LOB

2、加强集合加强正那么表达式简介来源于数学首先在 UNIX 中计算机化从 ed、grep、perl、cgi、web 到任何地方多种运用程序HTML FORMS 中的验证 生物信息学效力器配置数据发掘Oracle 正那么表达式对数据库的本地支持SQL 和 PL/SQL 中的接口基于 POSIX 规范与 GNU、PERL、Java、Xquery 等同步描画数据的方式变为数据的一个属性数据库内部强大的字符串处置主要特性POSIX 扩展的正那么表达式接口REGEXP_LIKE方式能否匹配?REGEXP_SUBSTR它与什么匹配?REGEXP_INSTR它在哪里匹配?REGEXP_REPLACE交换匹配的记

3、录。匹配选项言语环境支持LOB 支持REGEXP_LIKE确定方式能否存在。查找称号 Jon Stevens 的变体John 或 JonSteven 或 Stevens 或 Stephen 或 StephensSELECT c1 FROM t1 WHERE REGEXP_LIKE(c1, Joh?n Ste(ph|v)ens?); Jon Stevens John Stephens John Stevens和 DDL 一同运用允许运用过滤器的数据,并带检查约束邮政编码 (ZIP code) 列是 VARCHAR2(5),但可以包含恣意的 5 个字符。运用视图的查询子集和格式化将号码格式化为 (

4、xxx) xxx-xxxx创建基于函数的索引与 PL/SQL 一同运用非常强大的字符串处置功能src := REGEXP_REPLACE (src, );src := REGEXP_REPLACE (src, );src := REGEXP_REPLACE (src, ); 可以加强现有的功能支持 PERL 缩写提取第 n 个子表达式交换大量代码行可以简化字符串处置函数性能思索事项方式匹配能够很复杂需求编译成形状机词法分析检查一切能够的分支,直到发现匹配每条语句编译一次对于复杂情景能够比 LIKE 更快邮政编码检查快 5 倍通常比等价的 PL/SQL 更快编写快速执行的表达式本地浮点数据类型两

5、种新的数值数据类型 BINARY_FLOAT, BINARY_DOUBLE二进制浮点运算的 IEEE 754 规范是许多其他规范例如,Java、XML 方式和硬件平台的一部分普遍存在于商务智能、生命科学、工程/科学计算本地浮点数据类型与数值数据类型比 NUMBER 类型效率更高硬件运算/数学运算快 5 10 倍占用更少的内存/磁盘空间5/9 字节与 1 22 字节BINARY_DOUBLE 值范围更大e308 与 e125无需类型转换运用与字节顺序无关的存储格式本地浮点函数新的类型转换函数TO_BINARY_FLOAT、TO_BINARY_DOUBLETO_NUMBERSQL 函数支持数值函数

6、sin、cos 等聚合函数sum、avg、stddev 等分析函数sum、avg、stddev 等对 SQL、PL/SQL、Java、XML 方式注册、ODP.NET 和 OCI/OCCI 的无缝支持本地浮点约束create table floating_point_table1 (fltNnull binary_float constraint flt_null not null,dblNnull binary_double constraint dbl_null not null,fltUnq binary_float constraint flt_unq unique,dblUnq bi

7、nary_double constraint dbl_unq unique,fltChk binary_float constraint flt_chk check ( fltChk is not NaN ) ,dblChk binary_double constraint dbl_chk check ( dblChk is not infinite) ,fltPrm binary_float constraint flt_prm primary key);* NaN (不是数字) e.g. 0/0, infinity/infinity本地浮点约束create table floating_p

8、oint_table2 (dblPrm binary_double constraint dbl_prm primary key,fltFrn binary_float constraint flt_frn references floating_point_table1(fltPrm) on delete cascade);PL/SQL 例如运用欧拉级数计算 = sqrt ( 6 * ( 1 + 1/2*2 + 1/3*2 + . ) )运用牛顿方法近似真值的平方根赋值、加、乘、除、比较、绝对值 procedure Euler_Pi_Series is . begin pi := one;

9、prev_pi := zero; prod_over_six := zero; step := zero; while pi - prev_pi toler loop prev_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; while Abs(root - prev_root) root_toler loop prev_root := root; root

10、 := (root + prod/root)/two; end loop; pi := root; end loop; end Euler_Pi_Series; subtype My_Number is number; zero constant My_Number := 0.0; one constant My_Number := 1.0; two constant My_Number := 2.0; six constant My_Number := 6.0; toler constant My_Number := 0.00000000001; root_toler constant My

11、_Number := toler/1000.0; root My_Number; prev_root My_Number; prod_over_six My_Number; prod My_Number; pi My_Number; prev_pi My_Number; step My_Number; subtype My_Number is binary_double; zero constant My_Number := 0.0d; one constant My_Number := 1.0d; two constant My_Number := 2.0d; six constant My

12、_Number := 6.0d; toler constant My_Number := 0.00000000001d; root_toler constant My_Number := toler/1000.0d; root My_Number; prev_root My_Number; prod_over_six My_Number; prod My_Number; pi My_Number; prev_pi My_Number; step My_Number;PL/SQL 例如运用欧拉级数计算 近似 300,000 次迭代NUMBER 破费约 27.7 秒BINARY_DOUBLE 破费

13、约 3.7 秒提高倍数:约 7 倍LOB 加强LOB 普遍用于存储非构造化的数据文本、AVI、基因/蛋白序列等LOB 性能改善访问内联 ( 4KB) LOB 时获得 5 倍的性能增益在 9iR2 中暂时 LOB 运用援用计算提供了 几个数量级的性能增益在读取时援用 (Reference on Read)在写入时复制 (Copy on Write)超大型 LOBTB 大小的 Lob (8 128 TB) DB_BLOCK_SIZE (2 32 KB) x (4GB 1)新的 DBMS_LOB.GET_STORAGE_LIMIT 函数OCI、JDBC 和 DBMS_LOB 如今支持大于 4 GB

14、的 LOBOCILobRead2()、OCIWriteAppend2() 和 OCILobWrite2() 函数为 JDBC 和 DBMS_LOB 提供一样的 API集合类型加强用户定义的类型、集合类型和援用类型简化了构造复杂的数据建模集合类型用于映射实践世界运用程序中的包含关系例如,一个购物车包含了许多商品VARRAY 加强VARRAY 的类型开展 CREATE TYPE email_list_typ AS OBJECT ( section_no NUMBER, emails email_list_arr);/CREATE TYPE email_varray_typ AS VARRAY(5)

15、 OF email_list_typ;/ALTER TYPE email_varray_typ MODIFY LIMIT 100 CASCADE;在暂时表中支持 VARRAY 列提供应用程序开发灵敏性嵌套表加强将一个不同的表空间用于嵌套表的存储表带嵌套表的列的表可以在表空间之间分配 I/O 负载CREATE TABLE purchase_orders ( order_items_column order_items_typ )NESTED TABLE order_items_columnSTORE AS order_items_column_nt (TABLESPACE users);为嵌套表

16、提供的 ANSI SQL 多集合操作嵌套表存储无序的元素集合 只包含独一的元素多集合 可以包含反复的元素 嵌套表上的各种多集合操作为嵌套表提供的多集合操作Cardinality、Collect、Multiset Except、Multiset Intersection、Multiset Union、Powermultiset、Powermultiset_by_Cardinality 和 Set 操作查找热销商品集合的强大工具市场指数总览分析多集合操作例如create type categories as table of int;/ create table carts (c1 int, c2

17、 categories) nested table c2 store as tb1_c2; insert into carts values(1, categories(1,2,3,4);insert into carts values(2, categories(2,4,6); select t1.c2 multiset intersect t2.c2 from carts t1, carts t2 where t1.c1=1 and t2.c1=2; categories(2,4) - frequent set嵌套表比较Equal 和 Not Equal、In、Submultiset、Me

18、mber Of、Empty 和 Is Not A SetSELECT * FROM customer cWHERE item_typ(2) MEMBER OF c.freq_set; 在 PL/SQL 中也提供declare type Tab_t is table of pls_integer; a Tab_t := Tab_t ( 1, 2, 3, 4, 5 );begin if 3 member of a then Show ( member ); end if;end;SQL 小结Oracle 数据库 10g SQL 引擎 聚合来自不同的分布式数据源的数据网格信息无缝地集成 Java、X

19、ML 和根本数据处置功能一个全面的高性能和基于规范SQL-2003 W3C、J2SE、POSIX 等的特性集简化的运用程序开发、部署和管理RAS、可管理性和平安性 议程新的 SQL 特性新的 PL/SQL 特性PL/SQL 的速度是原来的两倍总结问答新的 PL/SQL 特性刚刚讨论的一切 SQL 言语特性FORALL 语句中的稀疏绑定数组编译器警告新的 Utl_Mail 和 Utl_Compress 程序包FORALL 语句中的稀疏绑定数组您的 PL/SQL 表最初是密集的,例如,是由 BULK COLLECT 填充的您删除了一些元素您想将这些元素插入到某个表中forall j in INDI

20、CES OF sparse_emp_records BETWEEN AND - optional insert into new_employees values sparse_emp_records(j);FORALL 语句中的稀疏绑定数组您有一个 PL/SQL 表密集或稀疏您想将这些记录的一个指定的子集插入到某个表中forall j in VALUES OF pointer_tab insert into new_employees values emp_records(j);编译器警告create or replace procedure P is debugging boolean :

21、= false;begin if debugging then Dbms_Output.Put_Line ( debugging ); end if;end P;/SP2-0804: Procedure created with compilation warningsShow ErrorsPLW-06002: Unreachable codealter session set plsql_warnings = ENABLE:ALL;编译器警告create or replace procedure P ( i in out clob ) isbegin i := x;end P;/SP2-08

22、04: Procedure created with compilation warningsShow ErrorsPLW-07203: parameter I may benefit from use of the NOCOPY compiler hintalter session set plsql_warnings = ENABLE:PERFORMANCE;新提供的程序包Utl_Mail它的 API 反映了,比如说,Netscape Communicator 的最终用户的思想方式无需 SMTP 协议的知识与运用 Utl_Smtp 相比确保简单化的一些限制Utl_Compress提供了一个

23、 API 来紧缩和解紧缩 RAW 或 BLOB 效力器端议程新的 SQL 特性新的 PL/SQL 特性PL/SQL 的速度是原来的两倍总结问答PL/SQL 编译和执行 101PL/SQL 源代码前端IR = Diana后端对象代码 = MCodePVM全新的后端10g 引进了一个全新的后端,又叫做优化代码生成器 它全面地查看源代码所表达的内容,然后删除对最终的正确结果确实没有影响的一切计算提供了实现宏大 性能的潜力全新的后端在 9iR2 中的 ORACLE 可执行文件中,新的代码生成器与旧的代码生成器并存,一个允许在两者之间进展选择的开关两者都曾在回归测试中运用因此我们保证它是平安的!我们没有

24、将这个开关提供应客户重要的 pvm 晋级删除了过时的指令添加了新的指令例如 one-shot multi concatenate简化了用于运用 PVM 指令的系统实施经过调整的指令的 C 例程改良了本地 编译数据库中的 DLL对于数据库管理员,配置更加简单改良了生成的 C 代码让我们修正其任务方式PL/SQL 源代码前端IR = Diana后端对象代码 = MCodePVMPL/SQL 编译和执行 101对象代码 = MCode 或本地计算机代码硬件性能实验结果由 PL/SQL 小组进展的测试Beta 程序测试由 Oracle 的运用程序部进展的测试由 PL/SQL 小组进展的测试17 个自包

25、含的 PL/SQL 程序的基准测试套件设计用来实际大范围的构造和编程习惯一些测试选择用来演示特定的优化器效果例如,从一个循环中删除一个常量赋值由 PL/SQL 小组进展的测试下一张幻灯片显示了每一个程序在 9iR2 INTERPRETED 和 10g NATIVE 中的速度9iR2 中速度一样10g 中显示了两种丈量方式的完成 CPU 时间之比由 PL/SQL 小组进展的测试大多数测试程序速度提高超越 2 倍一些测试程序速度提高远超越 2 倍速度提高 10 倍的程序运用 BINARY_INTEGER,并拥有特别易于优化的编程习惯 procedure P is /* constrained bi

26、nary_integer subtypes */ a positiven := 1; b positiven := 1; c positiven := 1; d positiven:=1; begin for j in 1.i_nof_iterations loop b := j /* constraint check */; d := 42 /* constant assignment within a loop */; c := d + b /* can be combined. */; a := b + c /* .c not used except here */; end loop;

27、 end P;由 PL/SQL 小组进展的测试下一张幻灯片显示了更多详细信息基准是 Oracle Version 8.0.6显示了 8i9iR2 INTERPRETED9iR2 NATIVE10g INTERPRETED10g NATIVE 速度提高的倍数由 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 (ifsworld) 为大中型企业开发和提供基于组件的业务运用程序领先的全球业务运用程序供应商3,000 名员工,产品行销 45 个国家,全球超越 350,000 位用户在斯德哥尔摩证券买卖所上市 (XSSE: IFS)由 IFS 进展的 Beta 程序测试IFS 运用程序基于 web 和门户技术提供用于制造、供应链管理、

温馨提示

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

评论

0/150

提交评论