通过shell脚本定位性能sql和生成报告
发布日期:2021-09-08 15:09:15
浏览次数:9
分类:技术文章
本文共 2729 字,大约阅读时间需要 9 分钟。
oracle的sql monitor是一个很有用的工具集。但是通过sql命令和反复去调用dbms_tune来传入参数等等操作感觉挺费事的。
可以通过如下的脚本来定位sql monitor中的性能sql,发现一些潜在的性能问题。这个脚本可以定位正在sql monitor监控范围内的sql语句。MONITOR_OWNER=`sqlplus -silent $DB_CONN_STR@$SH_DB_SID < set pages 100set linesize 200col status format a20col username format a15col module format a20col program format a25col sql_id format a20col sql_text format a20select sql_id,STATUS , USERNAME , MODULE , PROGRAM, substr(SQL_TEXT,0,20) sql_text from v\\$sql_monitor where username =upper('$1') group by sql_id,STATUS , USERNAME , MODULE , PROGRAM, substr(SQL_TEXT,0,20); exit; END` if [ -z "$MONITOR_OWNER" ]; then echo "no object exists, please check again" exit 0 else echo '*******************************************' echo " $MONITOR_OWNER " echo '*******************************************'fi
脚本运行结果如下,可以显示sql_id和状态,还有简单的sql语句。
尤其可以重点关注那些正在执行的语句。SQL_ID STATUS USERNAME MODULE PROGRAM SQL_TEXT -------------------- -------------------- --------------- -------------------- ------------------------- -------------------- 7u9gsk798bvrp DONE (ALL ROWS) TEST_USER JDBC Thin Client JDBC Thin Client SELECT AA.DATA_GROcjqdgd14xjwjm DONE (ALL ROWS) TEST_USER JDBC Thin Client JDBC Thin Client SELECT TO_CHAR (SUBS2zymmn3s4xn1k DONE (ALL ROWS) TEST_USER JDBC Thin Client JDBC Thin Client SELECT nrg."Cyc1hg2wcuapy3y3 EXECUTING TEST_USER JDBC Thin Client JDBC Thin Client select d1_run_reque
如果要生成sql monitor报告。
可以采用如下的脚本MONITOR_OWNER=`sqlplus -silent $DB_CONN_STR@$SH_DB_SID < set pages 100set linesize 200col status format a20col username format a15col module format a20col program format a25col sql_id format a20col sql_text format a20select sql_id,STATUS , USERNAME , MODULE , PROGRAM, substr(SQL_TEXT,0,20) sql_text from v\\$sql_monitor where sql_id='$1' group by sql_id,STATUS , USERNAME , MODULE , PROGRAM, substr(SQL_TEXT,0,20) ; exit; END` if [ -z "$MONITOR_OWNER" ]; then echo "no object exists, please check again" exit 0 else echo '*******************************************' echo " $MONITOR_OWNER " echo '*******************************************'fi sqlplus -silent $DB_CONN_STR@$SH_DB_SID < set long 99999set pages 0set linesize 200col status format a20col username format a30col module format a20col program format a20col sql_id format a20col sql_text format a50col comm format a200set long 999999SELECT dbms_sqltune.report_sql_monitor(sql_id => '$1',report_level => 'ALL',type=>'TEXT') comm FROM dual; EOF
本文转自ICT时空dbasdk的博客,原文链接:,如需转载请自行联系原博主。
转载地址:https://blog.csdn.net/weixin_34326429/article/details/90161987 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月05日 12时01分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
pytorch中的tensorboard使用
2019-04-26
图像处理YUV的详解
2019-04-26
QT项目之文件重复检测
2019-04-26
C++学习 -3 C和C++的混合编程及库的调用
2019-04-26
基于QT的仓库礼品出入库管理(第一个给别人使用的软件)
2019-04-26
C++之调用脚本实现复制当前路径指定目录下文件到另外的地方
2019-04-26
C++学习 -2 namespace大全
2019-04-26
海思项目学习记录 -4、H.264及RTSP协议实时传输
2019-04-26
c语言——位运算符及用法
2019-04-26
java安卓开发软件及环境配置
2019-04-26
C语言数据类型的转化
2019-04-26
回顾大一
2019-04-26
英语(未完)
2019-04-26
define与const(未完待续)
2019-04-26
Eclipse的一些技巧以及快捷键(未完待续)
2019-04-26
java的基础语法(未完待续)
2019-04-26
英语小短文翻译1——The Significance of Books
2019-04-26
杂乱的Java笔记(未完)
2019-04-26
Java的类与类之间的USES-A和HAS-A及区分
2019-04-26