Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Information Lifecycle Management)等多项创新。
一.新特性提纲
1.
数据库管理部分
◆数据库重演
(Database Replay)
这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者 standby数据库中创建的测试数据库上,然后重演负责以测试系统调优后的效果。
这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者 standby数据库中创建的测试数据库上,然后重演负责以测试系统调优后的效果。
◆
SQL重演
(SQL Replay)
和前一特性类似。但是只是捕捉 SQL负载部分,而不是全部负载。
和前一特性类似。但是只是捕捉 SQL负载部分,而不是全部负载。
◆计划管理(
Plan Management)
这一特性允许你将某一特定语句的查询计划固定下来,无论统计数据变化还是数据库版本变化都不会改变她的查询计划。
这一特性允许你将某一特定语句的查询计划固定下来,无论统计数据变化还是数据库版本变化都不会改变她的查询计划。
◆自动诊断知识库(
Automatic Diagnostic Repository ADR)
当 Oracle探测到重要错误时,会自动创纪一个事件( incident),并且捕捉到和这一事件相关的信息,同时自动进行数据库健康检查并通知 DBA。此外,这些信息还可以打包发送给 Oracle支持团队。
当 Oracle探测到重要错误时,会自动创纪一个事件( incident),并且捕捉到和这一事件相关的信息,同时自动进行数据库健康检查并通知 DBA。此外,这些信息还可以打包发送给 Oracle支持团队。
◆事件打包服务
(Incident Packaging Service)
如果你需要进一步测试或者保留相关信息,这一特性可以将与某一事件相关的信息打包。并且你还可以将打包信息发给 oracle支持团队。
如果你需要进一步测试或者保留相关信息,这一特性可以将与某一事件相关的信息打包。并且你还可以将打包信息发给 oracle支持团队。
◆基于特性打补丁(
Feature Based Patching)
在打补丁包时,这一特性可以使你很容易区分出补丁包中的那些特性是你正在使用而必须打的。企业管理器( EM)使你能订阅一个基于特性的补丁服务,因此企业管理器可以自动扫描那些你正在使用的特性有补丁可以打。
在打补丁包时,这一特性可以使你很容易区分出补丁包中的那些特性是你正在使用而必须打的。企业管理器( EM)使你能订阅一个基于特性的补丁服务,因此企业管理器可以自动扫描那些你正在使用的特性有补丁可以打。
◆自动
SQL优化
(Auto SQL Tuning)
10g的自动优化建议器可以将优化建议写在 SQL profile中。而在 11g中,你可以让 oracle自动将能 3倍于原有性能的 profile应用到 SQL语句上。性能比较由维护窗口中一个新管理任务来完成。
10g的自动优化建议器可以将优化建议写在 SQL profile中。而在 11g中,你可以让 oracle自动将能 3倍于原有性能的 profile应用到 SQL语句上。性能比较由维护窗口中一个新管理任务来完成。
◆访问建议器(
Access Advisor)
11g的访问建议器可以给出分区建议,包括对新的间隔分区( interval partitioning)的建议。间隔分区相当于范围分区( range partitioning)的自动化版本,她可以在必要时自动创建一个相同大小的分区。范围分区和间隔分区可以同时存在于一张表中,并且范围分区可以转换为间隔分区。
11g的访问建议器可以给出分区建议,包括对新的间隔分区( interval partitioning)的建议。间隔分区相当于范围分区( range partitioning)的自动化版本,她可以在必要时自动创建一个相同大小的分区。范围分区和间隔分区可以同时存在于一张表中,并且范围分区可以转换为间隔分区。
◆自动内存优化(
Auto Memory Tuning)
在 9i中,引入了自动 PGA优化; 10g中,又引入了自动 SGA优化。到了 11g,所有内存可以通过只设定一个参数来实现全表自动优化。你只要告诉 oracle有多少内存可用,她就可以自动指定多少内存分配给 PGA、多少内存分配给 SGA和多少内存分配给操作系统进程。当然也可以设定最大、最小阈值。
在 9i中,引入了自动 PGA优化; 10g中,又引入了自动 SGA优化。到了 11g,所有内存可以通过只设定一个参数来实现全表自动优化。你只要告诉 oracle有多少内存可用,她就可以自动指定多少内存分配给 PGA、多少内存分配给 SGA和多少内存分配给操作系统进程。当然也可以设定最大、最小阈值。
◆资源管理器(
Resource Manager)
11g的资源管理器不仅可以管理 CPU,还可以管理 IO。你可以设置特定文件的优先级、文件类型和 ASM磁盘组。
11g的资源管理器不仅可以管理 CPU,还可以管理 IO。你可以设置特定文件的优先级、文件类型和 ASM磁盘组。
◆
ADDM
ADDM在 10g被引入。 11g中, ADDM不仅可以给单个实例建议,还可以对整个 RAC(即数据库级别)给出建议。另外,还可以将一些指示( directive)加入 ADDM,使之忽略一些你不关心的信息。
ADDM在 10g被引入。 11g中, ADDM不仅可以给单个实例建议,还可以对整个 RAC(即数据库级别)给出建议。另外,还可以将一些指示( directive)加入 ADDM,使之忽略一些你不关心的信息。
◆
AWR 基线(
AWR Baselines)
AWR基线得到了扩展。可以为一些其他使用到的特性自动创建基线。默认会创建周基线。
AWR基线得到了扩展。可以为一些其他使用到的特性自动创建基线。默认会创建周基线。
2.PLSQL
部分
◆结果集缓存(
Result Set Caching)
这一特性能大大提高很多程序的性能。在一些 MIS系统或者 OLAP系统中,需要使用到很多 "select count(*)"这样的查询。在之前,我们如果要提高这样的查询的性能,可能需要使用物化视图或者查询重写的技术。在 11g,我们就只需要加一个 /*+result_cache*/的提示就可以将结果集缓存住,这样就能大大提高查询性能。当然,在这种情况下,我们可能还要关心另外一个问题:完整性。因为在 oracle中是通过一致性读来保证数据的完整性的。而显然,在这种新特性下,为提高性能,是从缓存中的结果集中读取数据,而不会从回滚段中读取数据的。关于这个问题,答案是完全能保证完整性。因为结果集是被独立缓存的,在查询期间,任何其他 DML语句都不会影响结果集中的内容,因而可以保证数据的完整性。
这一特性能大大提高很多程序的性能。在一些 MIS系统或者 OLAP系统中,需要使用到很多 "select count(*)"这样的查询。在之前,我们如果要提高这样的查询的性能,可能需要使用物化视图或者查询重写的技术。在 11g,我们就只需要加一个 /*+result_cache*/的提示就可以将结果集缓存住,这样就能大大提高查询性能。当然,在这种情况下,我们可能还要关心另外一个问题:完整性。因为在 oracle中是通过一致性读来保证数据的完整性的。而显然,在这种新特性下,为提高性能,是从缓存中的结果集中读取数据,而不会从回滚段中读取数据的。关于这个问题,答案是完全能保证完整性。因为结果集是被独立缓存的,在查询期间,任何其他 DML语句都不会影响结果集中的内容,因而可以保证数据的完整性。
◆对象依赖性改进
在 11g之前,如果有函数或者视图依赖于某张表,一旦这张表发生结构变化,无论是否涉及到函数或视图所依赖的属性,都会使函数或视图变为 invalid。在 11g中,对这种情况进行了调整:如果表改变的属性与相关的函数或视图无关,则相关对象状态不会发生变化。
在 11g之前,如果有函数或者视图依赖于某张表,一旦这张表发生结构变化,无论是否涉及到函数或视图所依赖的属性,都会使函数或视图变为 invalid。在 11g中,对这种情况进行了调整:如果表改变的属性与相关的函数或视图无关,则相关对象状态不会发生变化。
◆正则表达式的改进
在 10g中,引入了正则表达式。这一特性大大方便了开发人员。 11g, oracle再次对这一特性进行了改进。其中,增加了一个名为 regexp_count的函数。另外,其他的正则表达式函数也得到了改进。
在 10g中,引入了正则表达式。这一特性大大方便了开发人员。 11g, oracle再次对这一特性进行了改进。其中,增加了一个名为 regexp_count的函数。另外,其他的正则表达式函数也得到了改进。
◆新
SQL语法
=>
我们在调用某一函数时,可以通过 =>来为特定的函数参数指定数据。而在 11g中,这一语法也同样可以出现在 sql语句中了。例如,你可以写这样的语句:
我们在调用某一函数时,可以通过 =>来为特定的函数参数指定数据。而在 11g中,这一语法也同样可以出现在 sql语句中了。例如,你可以写这样的语句:
select f(x=>6) from dual; |
◆对
TCP包(
utl_tcp、
utl_smtp…)支持
FGAC(Fine Grained Access Control)安全控制
◆增加了只读表(
read-only table)
在以前,我们是通过触发器或者约束来实现对表的只读控制。 11g中不需要这么麻烦了,可以直接指定表为只读表。
在以前,我们是通过触发器或者约束来实现对表的只读控制。 11g中不需要这么麻烦了,可以直接指定表为只读表。
◆触发器执行效率提高了
内部单元内联(
Intra-Unit inlining
)
在
C语言中,你可以通过内联函数(
inline)或者宏实现使某些小的、被频繁调用的函数内联,编译后,调用内联函数的部分会编译成内联函数的函数体,因而提高函数效率。在
11g的
plsql中,也同样可以实现这样的内联函数了。
◆设置触发器顺序
可能在一张表上存在多个触发器。在 11g中,你可以指定它们的触发顺序,而不必担心顺序混乱导致数据混乱。
可能在一张表上存在多个触发器。在 11g中,你可以指定它们的触发顺序,而不必担心顺序混乱导致数据混乱。
◆混合触发器(
compound trigger)
这是 11g中新出现的一种触发器。她可以让你在同一触发器中同时具有申明部分、 before过程部分、 after each row过程部分和 after过程部分。
这是 11g中新出现的一种触发器。她可以让你在同一触发器中同时具有申明部分、 before过程部分、 after each row过程部分和 after过程部分。
◆创建无效触发器
(Disabled Trigger)
11g中,开发人员可以可以闲创建一个 invalid触发器,需要时再编译她。
11g中,开发人员可以可以闲创建一个 invalid触发器,需要时再编译她。
◆在非
DML语句中使用序列(
sequence)
在之前版本,如果要将 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"没有错误爆出就发警告信息。
11g中,可以通过设置 PLSQL_Warning=enable all,如果在 "when others"没有错误爆出就发警告信息。
◆
PLSQL的可继承性
可以在 oracle对象类型中通过 super(和 java中类似)关键字来实现继承性。
可以在 oracle对象类型中通过 super(和 java中类似)关键字来实现继承性。
◆编译速度提高
因为不在使用外部 C编译器了,因此编译速度提高了。
因为不在使用外部 C编译器了,因此编译速度提高了。
◆改进了
DBMS_SQL包
其中的改进之一就是 DBMS_SQL可以接收大于 32k的 CLOB了。另外还能支持用户自定义类型和 bulk操作。
其中的改进之一就是 DBMS_SQL可以接收大于 32k的 CLOB了。另外还能支持用户自定义类型和 bulk操作。
◆增加了
continue关键字
在 PLSQL的循环语句中可以使用 continue关键字了(功能和其他高级语言中的 continue关键字相同)。
在 PLSQL的循环语句中可以使用 continue关键字了(功能和其他高级语言中的 continue关键字相同)。
◆新的
PLSQL数据类型
——simple_integer
这是一个比 pls_integer效率更高的整数数据类型。
这是一个比 pls_integer效率更高的整数数据类型。
3.
其他部分
◆增强的压缩技术
可以最多压缩 2/3的空间。
可以最多压缩 2/3的空间。
◆高速推进技术
可以大大提高对文件系统的数据读取速度。
可以大大提高对文件系统的数据读取速度。
◆增强了
DATA Guard
可以创建 standby数据库的快照,用于测试。结合数据库重演技术,可以实现模拟生成系统负载的压力测试。
可以创建 standby数据库的快照,用于测试。结合数据库重演技术,可以实现模拟生成系统负载的压力测试。
◆在线应用升级
也就是热补丁 ——安装升级或打补丁不需要重启数据库。
也就是热补丁 ——安装升级或打补丁不需要重启数据库。
◆数据库修复建议器
可以在错误诊断和解决方案实施过程中指导 DBA。
可以在错误诊断和解决方案实施过程中指导 DBA。
◆逻辑对象分区
可以对逻辑对象进行分区,并且可以自动创建分区以方便管理超大数据库( Very Large Databases VLDBs)。
可以对逻辑对象进行分区,并且可以自动创建分区以方便管理超大数据库( Very Large Databases VLDBs)。
◆新的高性能的
LOB基础结构
◆新的
PHP驱动
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22741583/viewspace-684244/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22741583/viewspace-684244/