您的位置:首页 > 数据库 > Oracle

Oracle 子程序内联

2015-06-29 14:15 363 查看
-- Start

如果子程序 A 调用 B,内联可以把 B 的代码合并到 A 中,从而减少子程序调用,提高性能,下面是一个简单的例子。

-- 子程序 A
PROCEDURE A 
IS
BEGIN
	-- 指定下面的子程序 B 内联
	PRAGMA INLINE (B, 'YES')
	B(1);
	
	-- 注意此处的子程序不会内联
	B(2);
END A;  

-- 子程序 B  
PROCEDURE B (x PLS_INTEGER)  
IS
BEGIN
	DBMS_OUTPUT.PUT_LINE(x);  
END B;


如果你觉得在每一个子程序调用前加上 PRAGMA INLINE 在麻烦,你可以将编译参数 PLSQL_OPTIMIZE_LEVEL 设置为 3 (默认值是2),这样 Oracle 会把每一个子程序调用都内联。

--更多参见:Oracle SQL 优化精萃

-- 声明:转载请注明出处

-- Last edited on 2015-06-29

-- Created by ShangBo on 2015-06-29

-- End
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: