资源描述:
《利用工具捕获影响数据库的sql语句》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、刚才用到一个非常有用的sql语句,大家看下,以后说不定用上。--#先说案例,再给语句。。。我们经常会遇到一种情况,就是一条性能糟糕的sql语句,就可以轻易搞死一个强大的数据库。有时数据库正在运行,就突然发现很卡了。很怎么最快速地找出他们来呢?问题描述:系统CPU高度消耗,系统运行缓慢一.首先通过Top命令查看$toploadaverages: 1.61, 1.28, 1.25 HSWAPJSDB 10:50:44172processes:160sleep
2、ing,1running,3zombie,6stopped,2oncpuCPUstates: %idle, %user, %kernel, %iowait, %swapMemory:4.0Greal,1.4Gfree,1.9Gswapinuse,8.9GswapfreePIDUSERNAMETHRPRNCE SIZE RESSTATE TIMEFLTS CPUCOMMAND20521oracle 140 0 1.8G 1.7Grun 6:37 047.77%
3、oracle20845oracle 140 0 1.8G 1.7Gcpu02 0:41 040.98%oracle20847oracle 158 0 1.8G 1.7Gsleep 0:00 0 0.84%oracle20780oracle 148 0 1.8G 1.7Gsleep 0:02 0 0.83%oracle15828oracle 158 0 1.8G 1.7Gsleep 0:58 0 0.53%oracle20867root 158 0
4、4384K2560Ksleep 0:00 0 0.29%sshd220493oracle 158 0 1.8G 1.7Gsleep 0:03 0 0.29%oracle20887oracle 148 0 1.8G 1.7Gsleep 0:00 0 0.13%oracle20851oracle 158 0 1.8G 1.7Gsleep 0:00 0 0.10%oracle20483oracle 148 0 1.8G 1.7Gsleep 0:00 0 0.
5、09%oracle20875oracle 145 01064K 896Ksleep 0:00 0 0.07%sh20794oracle 158 0 1.8G 1.7Gsleep 0:00 0 0.06%oracle20842jiankong 152 21224K 896Ksleep 0:00 0 0.05%sadc20888oracle 155 01712K1272Kcpu00 0:00 0 0.05%top19954oracle 158 0 1.8G
6、1.7Gsleep 84:25 0 0.04%oracle 发现在进城列表里,存在两个高CPU耗用的Oracle进城,分别消耗了47.77%和40.98%的CPU资源.二.找到存在问题的进程信息$ps-ef
7、grep20521 oracle2090920875 010:50:53pts/10 0:00grep20521 oracle20521 14710:43:59? 6:45oraclejshs(LOCAL=NO)$ps-ef
8、grep20845 oracle20
9、845 14410:50:00? 0:55oraclejshs(LOCAL=NO) oracle2091820875 010:50:59pts/10 0:00grep20845确认这是两个远程连接的用户进程.三.使用eygle的脚本SELECT /*+ORDERED*/ sql_text FROMv$sqltexta WHERE(a.hash_value,a.address)IN( SELECTDECODE(sql_hash_value,
10、 0,prev_hash_value, sql_hash_value ), DECODE(sql_hash_value,0,prev_sql_addr,sql_address) FR