oracle v$sql last_load_time,Oracle 等待事件V$视图
等待事件V$視圖
本節包含一些顯示等待事件的V$ 腳本。從個人角度來說,我更喜歡使用STATSPACK 報表、AWR 報表或企業管理器來查找等待事件。也就是說,有些很好的視圖可以查看等待事件。 Oracle 10gR2中添加了一些新的視圖,但最幸運的是在V$SESSION_WAIT中找到的東西現在在V$SESSION中可以找到。
馬上該誰等待--查詢V$SESSION_WAIT / V$SESSION
select event, sum(decode(wait_time,0,1,0)) "Waiting Now",
sum(decode(wait_time,0,0,1)) "Previous Waits",
count(*) "Total"
from v$session_wait
group by event
order by count(*);WAIT_TIME = 0 means that it's waiting
WAIT_TIME > 0 means that it previously waited this many msEVENT??????????????????????????? Waiting Now? Previous Waits Total
--------------------------- ------------ -------------- -------
db file sequential read?????? ?0????????????? 1???????????????? 1
db file scattered read??????? ?2????????????? 0???????????????? 2
latch free????????????????????? ?0??????????? ? 1???????????????? 1
enqueue???????????????????????? ? 2????????????? 0???????????????? 2
SQL*Net message from client? ?0??????????? 254???????????? ? 480
...select event, sum(decode(wait_time,0,1,0)) "Waiting Now",
sum(decode(wait_time,0,0,1)) "Previous Waits",
count(*) "Total"
from v$session
group by event
order by count(*);
EVENT??????????????????????????? ?Waiting Now Previous Waits? ??Total
--------------------------- ?------------ -------------- ???--------
db file sequential read?????? ?0????????????? 1???????????????? ???1
db file scattered read??????? ?2????????????? 0???????????????? ???2
latch free????????????????????? ?0???????????? ?1???????????????? ???1
enqueue????????????????????????? ?2????????????? 0???????????????? ???2
SQL*Net message from client? ?0????????? ? 254????????????? ??? 480
...馬上該誰等待;SPECIFIC Waits--查詢V$SESSION_WAIT
SELECT /*+ ordered */ sid, event, owner, segment_name, segment_type,p1,p2,p3
FROM?? v$session_wait sw, dba_extents de
WHERE? de.file_id = sw.p1
AND??? sw.p2 between de.block_id and de.block_id+de.blocks - 1
AND??? (event = 'buffer busy waits' OR event = 'write complete waits')
AND??? p1 IS NOT null
ORDER BY event,sid;誰在等待 - 最后10 個等待數--查詢V$SESSION_WAIT_HISTORY
SELECT /*+ ordered */ sid, event, owner, segment_name, segment_type,p1,p2,p3
FROM?? v$session_wait_history sw, dba_extents de
WHERE? de.file_id = sw.p1
AND??? sw.p2 between de.block_id and de.block_id+de.blocks - 1
AND??? (event = 'buffer busy waits' OR event = 'write complete waits')
AND??? p1 IS NOT null
ORDER BY event,sid;查找P1, P2, P3代表什么--查詢 V$EVENT_NAME
col name for a20
col p1 for a10
col p2 for a10
col p3 for a10
select event#,name,parameter1 p1,parameter2 p2,parameter3 p3
from??? v$event_name
where?? name in ('buffer busy waits', 'write complete waits');EVENT#????????? NAME??????????????????? P1?????????? P2?????????? P3
------------- -------------------- ---------- ---------- ----------
143 write complete waits file#??????? block#
145 buffer busy waits??? ?file#??????? block#???? id會話開始后的所有等待數--查詢 V$SESSION_EVENT
select ?sid, event, total_waits, time_waited, event_id
from??? ?v$session_event
where?? time_waited > 0
order ??by time_waited;SID????????? EVENT?????????????????????????????? TOTAL_WAITS? TIME_WAITED
---------- ------------------------------ ----------- -----------
159 ?process startup?????????????????????????????? 2????????????? 1
167 latch: redo allocation???????????????????? ? 4????????????? 1
168 log buffer space????????????????????????????? 2????????????? 3
166 control file single write?????????????????? 5????????????? 4
...類的所有會話等待數--查詢V$SESSION_WAIT_CLASS
select sid, wait_class, total_waits
from??? v$session_wait_class;SID WAIT_CLASS????????????? TOTAL_WAITS
---------- -------------------- -----------
168 Other??????????????????????????????? 2
168 Concurrency???????????????????????? 1
168 Idle??????????????????????????? 12825
168 User I/O?????????????????????????? 12
168 System I/O????????????????????? 4448
169 Other??????????????????????????????? 1
169 Idle??????????????????????????? 12812
170 Idle??????????????????????????? 13527系統啟動后的所有等待數--查詢V$SYSTEM_EVENT
select? event, total_waits, time_waited, event_id
from??? ?v$system_event
where?? time_waited > 0
order? ? by time_waited;EVENT???????????????????????????????????? TOTAL_WAITS TIME_WAITED??? EVENT_ID
----------------------------------- ----------- ----------- ----------
enq: TX - row lock contention???????????????? 1196?????? 366837 ???310662678
enq: TM - contention???????????????????????????? 170??????? 52074? ???668627480
db file sequential read?????????????????????? 17387???????? 3163 ??2652584166
control file parallel write??????????????? ??12961??????? 23117 ??4078387448
db file scattered read?????????????????????? ??4706??????? 15762??? 506183215
class slave wait??????????????????????????????? ???20??????? 10246 ???1055154682
類的系統等待數--查詢V$SYSTEM_WAIT_CLASS
select wait_class, total_waits
from??? v$system_wait_class
order?? by total_waits desc;WAIT_CLASS????????????? TOTAL_WAITS
-------------------- -----------
Idle????????????????????????? 161896
Other????????????????????????? 65308
System I/O??????????????????? 24339
User I/O????????????????????? 22227
Application?????????????????? 1404
Commit????????????????????????? 524
Network???????????????????????? 522
Concurrency??????????????????? 221
Configuration????????????????? ?55
...類的系統等待數--查詢V$ACTIVE_SESSION_HISTORY
--In the query below, the highest count session is leader in non-idle wait events.
select session_id,count(1)
from??? v$active_session_history
group?? by session_id
order? by 2;
In the query below, find the SQL for the leader in non-idle wait events.
select c.sql_id, a.sql_text
from v$sql a, (select sql_id,count(1)
from v$active_session_history b where sql_id is not null
group by sql_id
order by 2 desc) c
where rownum <= 5
order by rownum;
技巧:
在Oracle 10g中V$SESSION_WAIT中的所有等待事件列現在都在V$SESSION中。因此,確保查詢等待信息的 V$SESSION,因為它是一個更快的視圖。V$ACTIVE_SESSION_HISTORY (ASH)將許多重要統計數據合并為一個視圖或一個報表(ASH報表)。
總結
以上是生活随笔為你收集整理的oracle v$sql last_load_time,Oracle 等待事件V$视图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle gsd,晕死:11203G
- 下一篇: php 二维数组字母排序,PHP二维数组