fallstar2000 发表于 2013-1-28 19:30:20

ORACLE查询低效率SQL和耗费内存的SQL

----低效率sql
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS,
  ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,
  ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,
  SQL_TEXT
  FROM  V$SQLAREA
  WHERE EXECUTIONS>0
  AND   BUFFER_GETS > 0
  AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8
  ORDER BY 4 DESC


--耗费内存SQL
select s.schemaname schema_name,  decode(sign(48 - command), 1,
  to_char(command), 'Action Code #' || to_char(command) ) action,  status
  session_status,  s.osuser os_user_name,  s.sid,     p.spid ,     s.serial# serial_num,
  nvl(s.username, '') user_name,  s.terminal terminal,
  s.program program,  st.value criteria_value from v$sesstat st,  v$session s , v$process p
  where st.sid = s.sid and  st.statistic# = to_number('38') and  ('ALL' = 'ALL'
  or s.status = 'ALL') and p.addr = s.paddr order by st.value desc, p.spid asc, s.username asc, s.osuser asc


---锁表

select   s.sid,s.machine,o.object_name,l.oracle_username,l.locked_mode,      
'ALTER   SYSTEM   KILL   SESSION   '''||s.sid||',   '||s.serial#||''';'   Command      
from   v$locked_object   l,v$session   s,all_objects   o      
where   l.session_id=s.sid   and   l.object_id=o.object_id;
页: [1]
查看完整版本: ORACLE查询低效率SQL和耗费内存的SQL