58.Oracle杂记——Oracle诊断常用命令

前端之家收集整理的这篇文章主要介绍了58.Oracle杂记——Oracle诊断常用命令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

58.Oracle杂记——Oracle诊断常用命令

1. 正在等事件的等待次数

selectevent"WaitEvent",sum(seconds_in_wait)"WaitedSoFar(sec)",count(sid)"NumSessWaiting"fromv$session_waitgroupbyeventorderby3desc;

2. 系统最主要的等待事件

setlinesize200

col"WaitEvent"fora45

selectEVENT"WaitEvent",TIME_WAITED"TimeWaited",round(TIME_WAITED/(SELECTSUM(TIME_WAITED)FROMv$system_event),2)"%Timewaited",TOTAL_WAITS"Waits",round(TOTAL_WAITS/(SELECTSUM(TOTAL_WAITS)FROMV$system_event),2)"%Waited"fromv$system_eventorderby3desc;

3. 查询产生该等待事件最多的哪些会话

selectsid,event"WaitEvent",state"WaitStat",

wait_time"W'dSoFar(secs)",seconds_in_wait"TimeW'd(secs)"

fromv$session_wait

whereeventlike'&event_name'

orderby5desc;

4. 资源消耗最大的会话ID和sql address

select cpu.sid "SID",cpu.username"USER Name",cpu.value "cpu(sec)",reads.value "IORead(k)",writes.value "IO Write(k)",cpu.sql_address from

(select a.sid sid,a.sql_address,a.usernameusername,b.name,c.value value,a.serial# serial#

from v$session a,v$statname b,v$sesstat c wherea.sid=c.sid and b.statistic#=c.statistic# and b.name='cpu used by thissession') cpu,(select a.sid,a.username,c.value value from v$sessiona,v$sesstat c

where a.sid=c.sid andb.statistic#=c.statistic# and b.name='physical reads') reads,

(select a.sid,c.value valuefrom v$session a,v$sesstat c

where a.sid=c.sid andb.statistic#=c.statistic# and b.name='physical writes') writes

where cpu.sid=reads.sid and reads.sid=writes.sidand cpu.username is not null order by cpu.value desc;

5. 通过sql Address找sql语句

selectsql_text"sqlStatementText"

fromv$sqlarea

whereADDRESS='&sql_address';

6. 通过SID找出sql语句

SELECTsql_text

FROMv$sqltexta

WHEREa.hash_value=(SELECTsql_hash_value

FROMv$sessionb

WHEREb.sid='&SID')

ORDERBYpieceASC

7. 查找哪些语句引起的等待,按照最消耗资源的顺序排列显示

select*from

(selectaddress"StmtAddr",

disk_reads"DiskRDS",

buffer_gets"BuffGets",

sorts"Sorts",

executions"Runs",

loads"BodyLoads"

fromv$sqlareawheredisk_reads>&A

orderbydisk_reads)

whererownum<&B;

8. 查看隐藏参数

select x.ksppinm name,y.ksppstvlvalue,x.ksppdesc pdesc from sys.x$ksppi x,sys.x$ksppcv y where x.indx=y.indxand x.ksppinm like '%&par%';

猜你在找的Oracle相关文章