【问题标题】:How to Find Memory Leaks in PL/SQL code [closed]如何在 PL/SQL 代码中查找内存泄漏
【发布时间】:2016-12-10 10:05:42
【问题描述】:

我在软件配置管理团队工作。我很想在 PL/SQL 中找到内存泄漏。我们有任何特定的工具吗?或任何其他方法来找到它。如果是这样,我可以把它放在签入后的过程中,并向用户提示内存泄漏。

谢谢!

【问题讨论】:

  • PL/SQL 是一种相当高级的语言,它无法让开发人员对其内部垃圾收集进行太多控制,因此我不确定您所考虑的代码结构类型。也许是一个由bulk collect 填充的全局集合,没有limit,但根据查询的表的大小,即使这样也可能是合理的。您遇到了什么问题?

标签: plsql oracle11g oracle10g plsql-psp


【解决方案1】:

v$sessmetric 是查看每个会话正在使用哪些资源的快速方法 - cpu、physical_reads、logical_reads、pga_memory 等。

以下查询将给出会话正在使用的对象:

SELECT v$sessmetric.*, sql_text, sql_fulltext
  FROM v$sessmetric
       LEFT OUTER JOIN (SELECT *
                          FROM v$sql
                         WHERE users_executing > 0) queries_running
          ON v$sessmetric.session_id = queries_running.parsing_schema_id;

【讨论】:

  • 谢谢你。为此,我们需要启动应用程序对吗?我试图检查在我们的源代码工具(比如 SVN 或 Clearcase)中签入的每个文件(包)。
猜你喜欢
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-11
相关资源
最近更新 更多