转载 加速PL/SQL + 笔记

转自:http://www.evget.com/zh-CN/Info/catalog/10516.html :!:
在Oracle9i引入的所有新特性中,编译型的PL/SQL是最让人激动的进步。从Oracle9i开始,我们可以[u][color=red]编译PL/SQL骨架[/color][/u],初步的报告显示,代码运行的速度要比解释型的PL/SQL快7倍。

在这之前,Oracle PL/SQL的特性之一就是:它是一门解释型的语言。在解释型语言里,每一行代码都会在移动到下一行代码之前被单独剖析和执行。尽管[u][color=red]解释型语言[/color][/u]会给PL/SQL的运行带来巨大的灵活性,但是它的不足之处是信息无法被打包进一个紧密的可执行模块——你可以在运行期间就从操作系统里直接运行这个模块。

Oracle9i所引入的这些变化带来了很多好处。我们现在可以把Oracle代码[u][color=red]隐藏在一个可执行文件[/color][/u]里。在Oracle9i之前的版本里,预备出售PL/SQL程序段的商用开发者别无选择,只有答应它们的客户看到其PL/SQL的真实源代码。今天,Oracle的开发人员能够通过直接向其客户提供可执行文件而隐藏掉PL/SQL的细节。

而且,Oracle的代码在编译模块里会运行的快得多。Oracle估计使用[u][color=red]编译型[/color][/u]的PL/SQL要比使用[u][color=red]传统的PL/SQL[/color][/u]快1到7倍。[color=red][mark:是不是编译型比解释性更能提高效率,希望能得到优劣比较图][/color]

它最好的一点是让Oracle PL/SQL的编译变得相当轻松。和PL/SQL程序[u][color=red]相对应的、已编译的代码被映射到PG[/color]A[/u](而不是SGA),从而获得更好的并发访问。有了本机的编译,不含有[u][color=red]SQL参照[/color][/u]的PL/SQL可以快1到7倍。[color=red][mark:含有sql 参照指的是什么?][/color]

为了启动本机编译,要使用下面的陈述式:

ALTER SESSION SET plsql_compiler_switches=NATIVE;

在Oracle9i里,一个PL/SQL的库单元可以被作为本机C代码编译,而不是作为字节代码被解释。它然后就会作为文件系统里的一个共享库被保存。编译PL/SQL函数或者进程的过程非常简单,就像下面这样:

ALTER FUNCTION my_func COMPILE;

编译使得PL/SQL程序的执行速度更快,因为它消除了和解释字节代码有关的延迟,而且在本机代码里提供了更好的流控制,这一点要比在解释型代码里的更好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值