使用PL/SQL Developer剖析PL/SQL代码

简介:     PL/SQL代码性能瓶颈可以通过DBMS_PROFILER包在命令行的方式下进行剖析来直接获得。对于比较复杂的代码而言,使用图形化的界面来进行剖析无疑是首选。

    PL/SQL代码性能瓶颈可以通过DBMS_PROFILER包在命令行的方式下进行剖析来直接获得。对于比较复杂的代码而言,使用图形化的界面来进行剖析无疑是首选。PL/SQL Developer依旧依赖于DBMS_PROFILER包,使用图形化界面来剖析PL/SQL代码,如匿名块,包,过程,函数等,其Profiler结果将列出该剖析代码涉及到的所有包,过程函数等并且可以按照不同的列类型进行排序等。本文以图文的形式介绍了PL/SQL Developer 下实现PL/SQL 代码剖析。

 

1、配置Profiler面板
单击Tools--->Preferences--->Profiler,下面是对应的配置描述(当前的演示版本9.0.0.1601)
Available Columns        --可用列(可以移动到右边)
Selected Columns         --已选择的列
Time units               --时间单位(秒、毫秒、微秒)
Show 0 occurrences       --是否显示执行0次的处理语句
Graphical time display   --用图形显示处理时间的颜色深度百分比

   

 

2、匿名代码段剖析示例  

   

    下面是剖析之后的结果图:可以看出第7行耗用了最多的时间   

   

 

3、包和过程代码剖析示例

   
   

   

        下面是剖析之后的结果,注意下图中红色圈,右边Text列包含了该过程下调用的其他包过程或函数等

   

         下图是按Total time排序之后的结果,可以看到当前的这个包耗用时间最多的部分集中在SQL部分,因此可以集中精力对这些SQL进行tuning。

   

    下图是剖析包调用的所有模块,后面跟的是其耗用的总时间

   

 

4、剖析结果相关说明
a、Profiler面板工具栏
    Profiler面板选项卡依次从左往右按钮,
    --配置profiler
    --刷新
    --删除当前结果
    --run当前代码运行起始时间
    --Unit则是该代码调用所有涉及到的模块,缺省为所有单元执行的总时间,切换到单元模块则对应该单元模块总时间

b、显示结果列的相关说明
    unit           --单元名称,即执行的存储过程,包括其调用的过程,匿名块等
    line           --代码行号
    total time     --该行代码的执行时间(颜色长度代表该行代码的执行时间与最长代码执行时间的百分比图)
    occurrences    --此行执行次数
    text           --对应得代码行,加密行无法显示
    Average time   —平均运行时间      (这个三个时间默认不显示,如果在profiler配置块设置则显示)
    maximum time   --最大运行时间
    minimum time   --最小运行时间

c、定位代码行
    Profiler 结果Text文本仅显示整条代码的行首部分,对于剩余部分可以在对应的行中打开右键,选择[Go to unit line]会直接跳到对应的源代码位置

d、Profiler结果排序
    可以对Profiler结果不同的字段进行排序,只需单击对应列名右侧方块即可。如需要排序Total time列则单击Total time列右侧方块变成下三角。

 

Oracle 牛鹏社    Oracle DBsupport

更多参考

使用 DBMS_PROFILER 定位 PL/SQL 瓶颈代码

对比 PL/SQL profiler 剖析结果

DML Error Logging 特性 

PL/SQL --> 游标

PL/SQL --> 隐式游标(SQL%FOUND)

批量SQL之 FORALL 语句

批量SQL之 BULK COLLECT 子句

PL/SQL 集合的初始化与赋值

PL/SQL 联合数组与嵌套表
PL/SQL 变长数组
PL/SQL --> PL/SQL记录

SQL tuning 步骤

高效SQL语句必杀技

父游标、子游标及共享游标

绑定变量及其优缺点

dbms_xplan之display_cursor函数的使用

dbms_xplan之display函数的使用

执行计划中各字段各模块描述

使用 EXPLAIN PLAN 获取SQL语句执行计划

目录
相关文章
|
1月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
19 2
|
2月前
|
SQL 关系型数据库 MySQL
创建SQL数据库的基本步骤与代码指南
在信息时代,数据管理显得尤为重要,其中数据库系统已成为信息技术架构的关键部分。而当我们谈论数据库系统时,SQL(结构化查询语言)无疑是其中最核心的工具之一。本文将详细介绍如何使用SQL创建数据库,包括编写相应的代码和必要的步骤。由于篇幅限制,本文可能无法达到您要求的2000字长度,但会尽量涵盖创建数
64 3
|
2月前
|
SQL 监控 关系型数据库
SQL错误代码1303解析与处理方法
在SQL编程和数据库管理中,遇到错误代码是常有的事,其中错误代码1303在不同数据库系统中可能代表不同的含义
|
2月前
|
SQL 安全 关系型数据库
SQL错误代码1303解析与解决方案:深入理解并应对权限问题
在数据库管理和开发过程中,遇到错误代码是常见的事情,每个错误代码都代表着一种特定的问题
|
4月前
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
43 1
|
3月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
133 0
|
4月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
121 0
|
4月前
|
SQL Oracle 关系型数据库
SQL与PL/SQL:数据库编程语言的比较
【8月更文挑战第31天】
73 0
|
4月前
|
SQL 数据库 索引
SQL 编程最佳实践简直太牛啦!带你编写高效又可维护的 SQL 代码,轻松应对数据库挑战!
【8月更文挑战第31天】在SQL编程中,高效与可维护的代码至关重要,不仅能提升数据库性能,还降低维护成本。本文通过案例分析探讨SQL最佳实践:避免全表扫描,利用索引加速查询;合理使用JOIN,避免性能问题;避免使用`SELECT *`,减少不必要的数据传输;使用`COMMIT`和`ROLLBACK`确保事务一致性;添加注释提高代码可读性。遵循这些实践,不仅提升性能,还便于后期维护和扩展。应根据具体情况选择合适方法并持续优化SQL代码。
59 0
|
4月前
|
SQL Java 数据库连接
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available