暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

解读Time Model Statistics中的PL/SQL 和 SQL执行时间

oracleace 2025-10-23
30
全网最全的解读Oracle AWR报告合集,免费订阅中
在Oracle AWR报告中,“Time Model Statistics”从用户的视角展示了各类操作所花费的时间。

在这个例子中,SQL执行时间占用了DB Time的68%,而PL/SQL仅占3%。但当我们下翻到“SQL Statistics”部分时,发现捕获的PL/SQL SQL语句占总DB Time(秒)的67.5%,这表明大部分SQL实际上是在PL/SQL中执行的。


从表面上看,这似乎存在矛盾——如果大部分SQL都在PL/SQL中执行,那么PL/SQL时间不应该更高吗?

答案在于Oracle如何定义和测量这两项统计数据。

尽管PL/SQL代码主要由SQL语句组成,但“sql execute elapsed time”和“PL/SQL execute elapsed time”并不重叠。具体来说:

  • 在PL/SQL中执行的SQL被计入“SQLexecute elapsed time”,而不是“PL/SQL execute elapsed time”。
  • “PL/SQL execute elapsed time”仅测量运行PL/SQL引擎本身所花费的时间,例如循环、条件语句、变量赋值等。
  • 它并不包括嵌入在PL/SQL块中的SQL语句的执行时间。

换句话说,3%的PL/SQL时间仅代表了PL/SQL解释器的开销,而68%的SQL时间则包括了PL/SQL块中实际执行SQL的时间。

关于号主,姚远:
  • Oracle ACE(Oracle和MySQL数据库方向)

  • 华为云最有价值专家

  • 《MySQL 8.0运维与优化》的作者

  • 拥有 Oracle 10g、12c和19c OCM等数十项数据库认证

  • 曾任IBM公司数据库部门经理

  • 20+年DBA经验,服务2万+客户

  • 精通C和Java,发明两项计算机专利

  • 两次获得国家部级奖

推荐文章👇

程序员如何练到英语专业八级水平?我的亲身经历

从我的经历看IT工程师能干到退休吗?

试看号主拙作《MySQL 8.0运维与优化》


号主在certview.oracle.com网站上的证书清单截图:

欢迎关注我的公众号,一起学习数据库技术,分享职业发展的思考。


欢迎加我的微信,拉你进微信群





文章转载自oracleace,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论