Oracle 性能优化之高消耗的SQL

本文介绍了如何在Oracle中通过动态视图如v$sql、v$sqlarea等来定位和分析高资源消耗的SQL语句。内容涵盖了如何查询最消耗CPU时间和磁盘读次数的SQL,以及使用v$session_longops视图来获取长时间运行的SQL信息。
摘要由CSDN通过智能技术生成

高资源消耗的 SQL

与用户执行 SQL 有关的动态视图有 v$sql、v$sqlarea、v$sqltext、v$sql_plan、 v$sqlstats 等。v$sql 中包含了所有用户执行的所有 SQL 信息,不同用户、不同会 话执行相同 SQL 的语义、执行计划可能会不同,这些 SQL 字面值相同(具有相同 的 sql_id),通过不同的 child_number 来区分。v$sqlarea 中仅包含 SQL 语句的字面 信息,忽略了相同 SQL 语句在执行会话、语义、执行计划上的不同,相同的 SQL 语句在 v$sqlara 中仅以一行显示。v$sqltext 以多个 piece 的形式给出了 SQL 语句 的完整文本,它通过字段 address 和 hash_value 的联合可以唯一地标识一条 SQL 语句。v$sql_plan 包含了 SQL 语句的执行计划信息,它通过 address、hash_value、 child_number 三个字段(可以和 v$sql 关联)唯一地标识 SQL 语句的执行计划。 v$sqlstats 包含 SQL 语句的性能统计信息,通过 sql_id 和 plan_hash_value 可以唯一 地标识一条 SQL 语句的性能统计数据。v$sqlstats 视图的字段是 v$sql 和 v$sqlarea 字段的子集,即视图中的内容来自于它们,但 v$sqlstats 视图中的数据比 v$sql 和 v$sqlarea 保存更持久。

当我们需要根据各种资源消耗查找 top SQL 时,可以根据不同的性能统计字 段查询 v$sql,该视图不仅包含用户提交给数据库的 SQL 语句及其文本,而且还包含这些语句的性能统计数据。表 13.1 给出了资源消耗与 v$sql 视图相关字段的 说明。

资 源 消 耗 字段及其说明
执行代价 cost
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值