快速业务通道

PL/SQL用户指南与参考--PL/SQL应用程序性能调优

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-18
;
num NUMBER := 零;
PROCEDURE init_pkg_state(n NUMBER);
PROCEDURE print_pkg_state;
END pkg一;
/
CREATE PACKAGE BODY pkg一 IS
PRAGMA SERIALLY_REUSABLE;
PROCEDURE init_pkg_state(n NUMBER) IS
BEGIN
pkg一.num := n;
END;
PROCEDURE print_pkg_state IS
BEGIN
dbms_output.put_line(''Num: '' || pkg一.num);
END;
END pkg一;
/
BEGIN
/* Initialize package state. */
pkg一.init_pkg_state(四);
/* On same server call, print package state. */
pkg一.print_pkg_state; -- prints 四
END;
/
-- subsequent server call
BEGIN
-- the package public variable is initialized
-- to the default value automatically
pkg一.print_pkg_state; -- prints 零
END;

2、确定PL/SQL的性能问题

当我们开发越来越大的PL/SQL应用程序时,便在所难免要遇到性能问题。之所以,PL/SQL为我们提供了Profiler API来辨析运行时举动并相助我们辨认性能瓶颈。PL/SQL也提供了一个Trace API用于追踪服务器端的程序施行。我们可以施用Trace来追踪子程序或异常的施行。

一、Profiler API:DBMS_PROFILER包

Profiler API由PL/SQL包DBMS_PROFILER兑现,它提供了征集并保留运行时的统计信息。这些信息会被封存在数据表中,供我们查询。比如,我们可以晓得PL/SQL每行和每个儿程序施行所花消的时间长短。

要应用Profiler,先开启一个性能测评对话,充分地运作我们的应用程序以便达到足够的代码覆盖率,其后把收集到的信息保留在数据库中,终止性能估测对话。具体方法如次:

一.调用DBMS_PROFILER包中的start_profiler进程,把一个诠释与性能估测对话联系关系。
二.运作要被估测的应用程序。
三.重复调用历程flush_data把收集到的数据保留下来并开释内存储器。
四.调用stop_profiler进程终止对话。
Profiler会追踪程序的施行,计算每行和每个儿程序所开销的时间。我们可以用收集到的数据相助改进性能。比如,我们可以集中处置那些运作慢的子程序。

•分析收集到的性能数据
下一步要判断出为啥实施某些代码段或访问某些数据结构要费用大量的时间。凭借查询出来的性能数据来找出问题点。把问题集中到那些消耗时间长的子程序和包,尽量的优化SQL话语、循环和递归函数等。

•施用追踪数据改进程序性能
应用我们的分析结果从新编撰那些施行效率低下的算法。比如,在急遽暴胀的数据中,我们可能要亟需运用二分法来顶替线性搜寻。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号