数据库SQL的监控和优化的核心,其实主要在于“行读”!
监控找出行读高的SQL,而优化的最直接手段就是降低行读数。
oracle的监控方法和监控工具可能有千百种,这里介绍我常用的几种简单而直接的方式:
注意:以下监控SQL需要用户有oracle的管理视图查询权限。
1、根据pid查SQL
假如你的oracle此时响应速度较慢,从服务器的TOP可以看到oracle进程占用了较多CPU,或者有较多的iowait,那么可以直接用下面的SQL语句来查询正在执行的较耗资源的SQL。
SELECT A.,B.SQLTEXT FROM
(SELECT z.SPID AS 操作系统PID
,x.SID
, x.SERIAL#
, x.USERNAME
, x.SQLID
FROM v$session x
, v$process z
WHERE x.PADDR = z.ADDR
AND Z.SPID = '10341')A
LEFT JOIN v$sql B ON A.SQLID = B.SQLID;
恭喜你,你可能已经直接找到有问题的SQL了。