博客
关于我
用一个package大致说明一下11g--plsql新特性
阅读量:313 次
发布时间:2019-03-03

本文共 1975 字,大约阅读时间需要 6 分钟。

Oracle 11g 新特性解析

Oracle 11g 引入了许多新特性,显著提升了数据库性能和开发体验。本文将从多个方面详细介绍这些新特性。

结果集缓存(Result Set Caching)

结果集缓存是 Oracle 11g 的一个重要新特性。通过在查询中添加 /*+result_cache*/ 提示,可以将结果集缓存到数据库中。这种机制特别适用于在 MIS 或 OLAP 系统中频繁执行的 select count(*) 查询。缓存后,查询性能显著提升,同时完整性得到了保证。Oracle 11g 通过一致性读机制确保数据完整性,缓存读取不会影响原始数据,保证了数据的一致性。

对象依赖性改进

在 Oracle 11g 之前,对象依赖性管理较为复杂。一旦依赖表结构发生变化,相关函数或视图都会变为无效状态(invalid)。11g 对这一问题进行了优化:如果表的结构变化不影响相关函数或视图的依赖属性,则相关对象状态保持不变。这一改进提升了对象管理的灵活性。

正则表达式改进

Oracle 10g 引入了正则表达式支持,极大方便了开发人员。11g进一步优化了正则表达式功能,新增了 regexp_count 函数,并对其他正则表达式函数进行了改进。这些改进使得在处理文本数据时更加高效和灵活。

新SQL语法

Oracle 11g 扩展了 SQL 语法的功能,使之更灵活。例如,函数参数可以通过 => 进行赋值,且这种语法在 SQL 语句中同样适用。例如:

select f(x => 6) from dual;

TCP 包支持 FGAC

Oracle 11g 提供了更高级别的安全控制,支持 FGAC(细粒度访问控制)。通过 utl_tcputl_smtp 等包,可以实现更细粒度的安全管理。这一特性提升了数据安全性,为敏感数据的处理提供了更强的保护。

只读表

在 Oracle 11g 中,直接支持只读表的创建。通过设置表属性为只读,无需依赖触发器或约束。这一特性简化了只读控制的实现,提升了开发效率。

触发器执行效率提升

11g 对触发器执行效率进行了优化,支持触发顺序的指定。通过 FOLLOWSPRECEDES 语句,可以明确触发器的执行顺序,避免触发顺序混乱导致的数据问题。

内部单元内联

在 C 语言中,通过内联函数或宏可以提升函数效率。11g 将这一特性引入 PLSQL,使得小型频繁调用的函数可以内联编译,显著提升执行效率。

触发器顺序

在 Oracle 11g 中,可以为同一表的多个触发器指定执行顺序。默认触发顺序为:BEFORE STATEMENTBEFORE EACH ROWAFTER EACH ROWAFTER STATEMENT。通过 FOLLOWSPRECEDES 关键字,可以自定义触发顺序。

创建无效触发器

11g 允许开发人员创建无效触发器(invalid)。可以在需要时重新编译触发器,提升灵活性和管理效率。

非 DML 语句中的序列

在 11g 中,非 DML 语句中可以直接使用序列。例如:

v_x := seq_x.next_val;

这大大简化了序列值的获取过程。

PLSQL_Warning

通过设置 PLSQL_Warning = enable all,可以在非错误情况下触发警告信息。例如,在调用 when others 时,若未抛出错误则发警告。

PLSQL 的可继承性

Oracle 11g 支持 PLSQL 的可继承性,通过 super 关键字可以实现类似 Java 的继承。这种特性提升了代码复用性和可维护性。

编译速度提升

11g 通过移除对外部 C 编译器的依赖,提升了 PLSQL 代码的编译速度。由于编译过程完全在数据库内部完成,编译效率显著提升。

DBMS_SQL 包改进

DBMS_SQL 包在 11g 中进行了多项改进,支持大于 32k 的 CLOB 操作,同时兼容用户自定义类型和批量操作。这一改进提升了数据处理的效率。

继续关键字

11g 引入了 continue 关键字,支持 PLSQL 循环中的继续语句。这种功能与其他高级语言中的 continue 相同,提升了代码的可读性和效率。

新数据类型:simple_integer

Oracle 11g 引入了 simple_integer 数据类型,这是一个比 pls_integer 效率更高的整数类型。该数据类型特别适用于整数值存储,提升了数据处理效率。

总结

Oracle 11g 引入了多项新特性,显著提升了数据库性能和开发体验。从结果集缓存到触发器优化,再到新数据类型和编译速度提升,11g 为用户提供了更强大的工具。通过合理利用这些新特性,可以进一步优化数据库性能和开发流程。

转载地址:http://nidq.baihongyu.com/

你可能感兴趣的文章
Netty:原理架构解析
查看>>
Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
查看>>
Network Sniffer and Connection Analyzer
查看>>
Network 灰鸽宝典【目录】
查看>>
NetworkX系列教程(11)-graph和其他数据格式转换
查看>>
Networkx读取军械调查-ITN综合传输网络?/读取GML文件
查看>>
network小学习
查看>>
Netwox网络工具使用详解
查看>>
Net与Flex入门
查看>>
net包之IPConn
查看>>
Net操作配置文件(Web.config|App.config)通用类
查看>>
Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
查看>>
New Relic——手机应用app开发达人的福利立即就到啦!
查看>>
NFinal学习笔记 02—NFinalBuild
查看>>
NFS
查看>>
NFS Server及Client配置与挂载详解
查看>>
NFS共享文件系统搭建
查看>>
nfs复习
查看>>
NFS安装配置
查看>>
NFS的安装以及windows/linux挂载linux网络文件系统NFS
查看>>