。

从表面上看,这似乎存在矛盾——如果大部分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工程师能干到退休吗?号主在certview.oracle.com网站上的证书清单截图:

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

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




