你所在的位置: 首页 > Oracle >
最新开班 班级 报名状态
9月16日 HCNP-R&S(含初级) 热招中
9月18日 RHCSA脱产班 热招中
9月25日 HCNA-Cloud Service 热招中
9月25日 HCNA-Cloud Service 热招中
9月30日 HCNA-R&S周末班 热招中
10月31日 HCNP-storage脱产班 热招中
10月23日 HCNA-storage脱产班 热招中
10月20日 HCNP-R&S脱产班 热招中
10月10日 HCIE-R&S脱产班 热招中
10月9日 HCNA-R&S脱产班 热招中
  • 博赛网络ICT就业班热招中
  • 博赛推出Oracle OCM实战课程

Oracle认证 Oracle11g特性(2)

时间:2014-01-21 10:47 作者:Superthink 点击:

 Oracle 11g是甲骨文公司在2007年7月12日推出的最新数据库软件,Oracle 11g有400多项功能,经过了1500万个小时的测试,开发工作量达到了3.6万人/月。相对过往版本而言,Oracle 11g具有了与众不同的特性。

PLSQL部分编辑

·结果集缓存(Result Set Caching)

这一特性能大大提高很多程序的性能。在一些MIS系统或者OLAP系统中,需要使用到很多"select count(*)"这样的查询。在之前,我们如果要提高这样的查询的性能,可能需要使用物化视图或者查询重写的技术。在11g,我们就只需要加一个 /*+result_cache*/的提示就可以将结果集缓存住,这样就能大大提高查询性能。当然,在这种情况下,我们可能还要关心另外一个问题:完整性。因为在oracle中是通过一致性读来保证数据的完整性的。而显然,在这种新特性下,为提高性能,是从缓存中的结果集中读取数据,而不会从回滚段中读取数据的。关于这个问题,答案是完全能保证完整性。因为结果集是被独立缓存的,在查询期间,任何其他DML语句都不会影响结果集中的内容,因而可以保证数据的完整性。

·对象依赖性改进

在11g之前,如果有函数或者视图依赖于某张表,一旦这张表发生结构变化,无论是否涉及到函数或视图所依赖的属性,都会使函数或视图变为invalid。在11g中,对这种情况进行了调整:如果表改变的属性与相关的函数或视图无关,则相关对象状态不会发生变化。

·正则表达式的改进

在10g中,引入了正则表达式。这一特性大大方便了开发人员。11g,oracle再次对这一特性进行了改进。其中,增加了一个名为regexp_count的函数。另外,其他的正则表达式函数也得到了改进。

·新SQL语法 =>

我们在调用某一函数时,可以通过=>来为特定的函数参数指定数据。而在11g中,这一语法也同样可以出现在sql语句中了。例如,你可以写这样的语句:
select f(x=>6) from dual;

·对TCP包

(utl_tcp、utl_smtp…)支持FGAC(Fine Grained Access Control)安全控制

·增加了只读表(read-only table)

在以前,我们是通过触发器或者约束来实现对表的只读控制。11g中不需要这么麻烦了,可以直接指定表为只读表。

·触发器执行效率提高了

·内部单元内联(Intra-Unit inlining)

在C语言中,你可以通过内联函数(inline)或者宏实现使某些小的、被频繁调用的函数内联,编译后,调用内联函数的部分会编译成内联函数的函数体,因而提高函数效率。在11g的plsql中,也同样可以实现这样的内联函数了。

·设置触发器顺序

可能在一张表上存在多个触发器。在11g中,你可以指定它们的触发顺序,而不必担心顺序混乱导致数据混乱。

·混合触发器(compound trigger)

这是11g中新出现的一种触发器。她可以让你在同一触发器中同时具有申明部分、before过程部分、after each row过程部分和after过程部分。

·创建无效触发器(Disabled Trigger)

11g中,开发人员可以可以闲创建一个invalid触发器,需要时再编译她。

·在非DML语句中使用序列(sequence)

在之前版本,如果要将sequence的值赋给变量,需要通过类似以下语句实现:
select seq_x.next_val into v_x from dual;
在11g中,不需要这么麻烦了,下面语句就可以实现:
v_x := seq_x.next_val;

·PLSQL_Warning

11g中。可以通过设置PLSQL_Warning=enable all,如果在"when others"没有错误爆出就发警告信息。

·PLSQL的可继承性

可以在oracle对象类型中通过super(和java中类似)关键字来实现继承性。

·编译速度提高

因为不再使用外部C编译器了,因此编译速度提高了。

·改进了DBMS_SQL包

其中的改进之一就是DBMS_SQL可以接收大于32k的CLOB了。另外还能支持用户自定义类型和bulk操作。

·增加了continue关键字

在PLSQL的循环语句中可以使用continue关键字了(功能和其他高级语言中的continue关键字相同)。

·新的PLSQL数据类型——simple_integer

这是一个比pls_integer效率更高的整数数据类型。
 

(责任编辑:Superthink)

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)