PL/SQL用户指南与参考--PL/SQL应用程序性能调优
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-03-18
EN ... END IF; 那么,函数惟独在表达式loan < 5000的值为TRUE的时分才会被调用,这种状况也适用于EXIT-WHEN话语。 •隐式的数据门类变换 运行时,PL/SQL能把构造化不同的数据部类进展隐式的变换。譬如说,把PLS_INTEGER变量赋给一个NUMBER变量,因为它们的内在表现形式不一样,之所以就会引起隐式地数据部类变换。 避免隐式的门类变换可以改进性能。如次面的例证,15是一个有符号的4字节数目字,在加法演算事前,PL/SQL务必把它转换成Oracle的数目字门类。但是,浮点数15.0运用22字节的Oracle数目字表现,之所以就没有必要开展变换。 DECLARE n NUMBER; c CHAR(五); BEGIN n := n + 15; -- converted n := n + 15.0; -- not converted ... END; 这边再有一个事例: DECLARE c CHAR(五); BEGIN c := 25; -- converted c := ''25''; -- not converted ... END; •不适当的数目字门类宣言 数据门类NUMBER和它的子部类都是22字节,数据库格式的数目字,它们易于移栽并且能顺应于不同的长度与精密度。当我们亟需宣言一个整型变量时,快要应用PLS_INTEGER,它是最高效率的数目字门类。这是由于PLS_INTEGER所需的内存储器要比INTEGER和NUMBER门类要少。一样, PLS_INTEGER运用机器演算,之所以它的演算速度要比BINARY_INTEGER、INTEGER或NUMBER快得多。 另外,INTEGER、NATURAL、NATURALN、POSITIVE、POSITIVEN和SIGNTYPE都是受约束的子门类。之所以,它们的变量急需在运行时稽查精密度,这就会影响到效率。 •用不着的NOT NULL约束 PL/SQL中,施用NOT NULL约束也会罗致性能亏耗。如次例所示: PROCEDURE calc_m IS m NUMBER NOT NULL := 零; a NUMBER; b NUMBER; BEGIN ... m := a + b; ... END; 由于m是受NOT NULL约束的,表达式a + b的值就会赋给暂时变量,其后PL/SQL会对这个暂时变量作判空测试。如其变量不是空,它的值就能赋给m,要不然就会出现异常。但是,如若m不是有约束限制的话,结果值就会直接赋给m。更高效率的写法如次: PROCEDURE calc_m IS m NUMBER; -- no constraint a NUMBER; b NUMBER; BEGIN ... m := a + b; IF m IS NULL THEN -- enforce constraint programmatically ... END IF; END; 注意,NATURALN和POSTIVEN都是NOT NULL,之所以它们也同样会影响性能。 •VARCHAR二变量的长度宣言 至于VARCHAR2部类,我们在内存储器应用和效率上亟需作出一个衡量。关于 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于PL/SQL用户指南与参考--PL/SQL应用程序性能调优的所有评论