2026-03-12 20:23:15
This commit is contained in:
55
vdh/latches.sql
Normal file
55
vdh/latches.sql
Normal file
@@ -0,0 +1,55 @@
|
||||
/**********************************************************************
|
||||
* File: latches.sql
|
||||
* Type: SQL*Plus script
|
||||
* Author: Tim Gorman (Evergreen Database Technologies, Inc.)
|
||||
* Date: 20-Sep-99
|
||||
*
|
||||
* Description:
|
||||
* Query to find the latches which are being waited on the longest.
|
||||
* GETS is the total number of times the latch is acquired.
|
||||
* IMMEDIATE_GETS is the number of times the latch was acquired
|
||||
* without waiting at all. SPIN_GETS is the number of times that
|
||||
* the latch was not acquired immediately, but was acquired after
|
||||
* 1-6 "spins" or "non-pre-emptive waits". SLEEPS is the number
|
||||
* of times the latch was neither acquired immediately nor acquired
|
||||
* by non-pre-emptive waits, but instead required one or more
|
||||
* "pre-emptive waits" (i.e. the process went to "sleep",
|
||||
* relinquishing the CPU). The latches with the most SLEEPS are
|
||||
* the site of the most contention...
|
||||
*
|
||||
* Mind you, none of this is a problem unless the wait-event
|
||||
* "latch free" is one of the top five or ten problems in the
|
||||
* V$SYSTEM_EVENT view, when queried and sorted according to
|
||||
* the column TIME_WAITED. If "latch free" is not a problem
|
||||
* overall, then it makes little sense to worry about the results
|
||||
* of this report...
|
||||
*
|
||||
* Modifications:
|
||||
**********************************************************************/
|
||||
set echo off feedback off timing off trimspool on pages 1000 lines 500
|
||||
|
||||
col name format a25 heading "Latch Name" truncate
|
||||
col gets format 9,999,999,990 heading "Total Gets"
|
||||
col immediate_gets format 9,999,999,990 heading "Immediate|Gets"
|
||||
col spin_gets format 999,990 heading "Spin Gets"
|
||||
col sleeps format 9,999,990 heading "Sleeps"
|
||||
col instance new_value V_INSTANCE noprint
|
||||
|
||||
select lower(replace(t.instance,chr(0),'')) instance
|
||||
from v$thread t,
|
||||
v$parameter p
|
||||
where p.name = 'thread'
|
||||
and t.thread# = to_number(decode(p.value,'0','1',p.value));
|
||||
|
||||
select name,
|
||||
gets,
|
||||
immediate_gets,
|
||||
spin_gets,
|
||||
sleeps
|
||||
from v$latch
|
||||
where gets > 0
|
||||
order by sleeps desc
|
||||
|
||||
spool latches_&&V_INSTANCE
|
||||
/
|
||||
spool off
|
||||
Reference in New Issue
Block a user