通过shell脚本来查看Undo中资源消耗高的sql

简介: 在查看undo的使用率的时候,在Undo_management为auto的时候,经常会看到undo自己在不断的伸缩扩展,自我调节。 有时候看到Undo收缩的很紧,就想知道哪些sql语句在运行,可能有哪些潜在的问题。

在查看undo的使用率的时候,在Undo_management为auto的时候,经常会看到undo自己在不断的伸缩扩展,自我调节。
有时候看到Undo收缩的很紧,就想知道哪些sql语句在运行,可能有哪些潜在的问题。对于在线业务系统而言,如果某一条sql语句运行时间较长,而且消耗的undo资源极高的情况下,sql语句很可能是有问题的。
可以通过如下的sql语句来简单定位,找到一个sql_id列表,可以看到每个sql_id消耗的Undo资源情况。


sqlplus -s $DB_CONN_STR@$SH_DB_SID set pages 53
select sum(undoblks)*8/1024 total_size_MB from v\$undostat  ;
select *from (
  select maxqueryid,
round(sum(undoblks )*8/1024) consumed_size_MB
from v\$undostat    group by maxqueryid order by  consumed_size_MB desc
) where rownum EOF
Exit

脚本运行结果如下:

TOTAL_SIZE_MB
-------------
   70299.2188

MAXQUERYID    CONSUMED_SIZE_MB
------------- ----------------
7wx3cgjqsmnn4            39990
210ndtcx5fwgs            20738
648600hq1s1s8             5795
cjqdgd14xjwjm             1116
4ad8ypr3nf6vm              869
0my2xfpqrk6gw              597
f3pq3mdycwcd2              455
cwp9zk1y7cthy              312
ddtx15a9nzmjt              139
csrj5pnpx4wtr               72
6tshctswzutbk               49
3a4vsqkf8yaxs               49
gpzkq2kv9vhan               27
fa311gg43yjyf               21
cysbbg2h86xc6               19
fjzknc02f7019               18
aty7a3bvqfxxx               17
ftmvqxfzq1fv0               16

可以看到sql_id为7wx3cgjqsmnn4 的sql 消耗资源情况最严重,很有可能存在一定的性能问题。在查看执行计划后发现,确实如此。
具体的细则就不罗列了,此处略去几百字。

总之通过undo的使用情况来查看可能存在的性能sql也是一种方式。当然了undo的使用情况是频繁变更的,可以根据自己的情况来对undo进行一定范围内的监控,相信会有一定的收获。

目录
相关文章
|
6月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
4月前
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
99 17
|
4月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
116 4
|
4月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
256 3
|
5月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
407 25
|
6月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
7月前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
571 32
|
6月前
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
7月前
|
JavaScript Shell C#
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
411 3
|
6月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。