вторник, 24 февраля 2009 г.

Oracle События ожидания


Группы событий ожидания


I/O  (Write I/O, Read I/O)
Buffer Cache  (Buffer Busy, Cache Latches)
Library Cache  (Library Cache, Shared Pool)
Lock  (TX Row Lock, TX ITL Lock, HW Lock)
Redo  (Log File, Log Buffer, Log File Sync)
SQL*Net  (SQL*Net more data from client, SQL*Net more data to client)



Administrative
Ожидания, относящиеся к ожиданиям пользователей завершения команд DBA
( например таких как index rebuild )


Application

Ожидания, относящиеся к коду пользовательских приложений
(например, lock waits caused by row level locking or explicit lock commands)


Cluster

Ожидания, относящиеся к ресурсам Real Application Cluster
(например, global cache resources such as 'gc cr block busy')


Commit

Этот класс ожиданий включает всего одно событие  - ожидание подтверждения
записи redo log из буфера на диск после commit  ('log file sync')


Concurrency
Ожидания внутреннего ресурса БД (например, latches)


Configuration

Ожидание вызвано неадекватной конфигурацией БД  или ресурсов экземпляра
(например, undersized log file sizes, shared pool size)


Idle

Ожидания бездействия, пустое ожидание (например, 'SQL*Net message from client')


Network

Ожидания связанные с передачей сетевых сообщений
(например, 'SQL*Net more data to dblink')


Other

Ожидания, которые не должны типично проявляться в системе
(например, 'wait for EMON to spawn')


Scheduler

Ожидания относящиеся к Resource Manager (например, 'resmgr: become active')


System I/O

Ожидания ввода/вывода фоновых процессов
(например, DBWR wait for 'db file parallel write')


User I/O

Ожидания ввода/вывода пользовательских процессов
(например, 'db file sequential read')



Некоторые события ожидания

db file sequential read
log file sync
db file scattered read
latch free
enqueue
SQL*Net more data from client
direct patch read
direct patch write
buffer busy waits
SQL*Net more data to client
log buffer space
log file switch completion
library cache pin
SQL*Net break/reset to client
io done
file open
free buffer waits
db file parallel read
weite complete waits
library cache lock
SQL*Net more data from dblink
log file switch (checkpoint incomplete)
library cache load lock
row cache lock
local write wait
sort segment request
process startup
uread message
file identify
pipe put
switch logfile command
SQL*Net break/reset to dblink
log file switch (archivig needed)
wait for a undo record
direct patch write (lob)
undo segment extension



Enqueue ST - Use LMT or preallocate large extents
Enqueue HW - Pre allocate extents above HW (high water mark)
Enqueue TX - Increase inittrans/maxtrans
Enqueue TM - Index foreign key Check application locking tablex DML Locks




SQL*Net more data from client
Это единственное чистое ожидание бездействия из всех SQL*Net% ожиданий.
Оно возникает когда серверный процесс запущен, а клиент ему никаких запросов не присылает.
Пользователь запустил форму, открыл соединениес БД, что-то там поделал и начал пить чай.
Серверный процесс висит и ждёт.


SQL*Net more data to client
Это уже более содержательная штука.
Это ожидание возникает у серверного процесса когда он хочет отправить сообщенин клиенту и не может
(например сеть занята, сетевой драйвер занят)
Это может влиять на производительность даже очень заметно.
Ожидание возможности отправить клиенту порцию данных.
Select выполнил fetch, порцию получили, надо клиенту отослать и почему-то это сделать невозможно.
Приходится ждать, сеть сбоит.
Оно считается idle, потому что средствами Oracle не лечится, лечится только средствами OC или железа.
С ним можно бороться только настройкой сети.


db file sequential read
Ожидание дискового чтения.
Нормальное ожидание, зависания на нем не бывает.
Если таких ожиданий много, то значит плохо используется кэш буферов т.е. много обращений к диску.
Нужно настроить SQL-оператор, уменьшая количество логических чтений, надеясь что при этом и количество физических чтений уменьшится.
Или настраивать кэш буферов, т.е. увеличивать коэффициент попадания в кэш.


log file sync
Возникает при коммите, когда сбрасывается содержимое журнального буфера в файл оперативного журнала.
Серверный процесс, который получил от пользователя commit, дёргает процесс LGWR и говорит ему сбросить журнальный буфер.
Пока LGWR этим занимается, серверный процессвисит в этом ожидании.
Если это ожидание часто встречается и занимает много времени, то можно попробовать снизить количество коммитов (частоту коммитов).
А может проблема в том, что LGWR не успевает, тогда настройте журнальные файлы.


log file parallel write
Усли оно коррелирует с log file sync, то это уже проблема.
Скорее всего проблема в плохой настройке процесса LGWR.
Надо перебросить файл оперативного журнала на отдельный диск.
Уменьшить их дуплицирование, увеличить размер журнального буфера.


enqueue
Ожидание получения бблокировки.
Когда сессия стоит в очереди waiter-ов или converter-ов она находится в состоянии ожидания enqueue.
Смотрим в v$lock и разбираемся кто и кого ждёт и почему.


latch free
Ожидание освобождения защёлки.
Нельзя точно сказать что с ними делать, типов защёлок около 200.
Разобраться за какую именно защёлку идёт конкуренция, какую защёлку чаще всего ждут.


======================================================================


system_wait

set lines 100
set pages 100
clear breaks
clear columns

column c1 heading 'Event' format A30 wrap
column c2 heading 'Total Waits' format 999,999,999
column c3 heading 'Wait Time(s)' format 999,999
column c4 heading 'Timeouts' format 999,999,999
column c5 heading 'Avg. Wait (s)' format 99.999

select event c1,
total_waits c2,
time_waited/100 c3,
total_timeouts c4,
average_wait/100 c5
from v$system_event
where event not in (
'dispatcher timer',
'lock element cleanup',
'Null event',
'parallel query dequeue wait',
'parallel query idle wait - Slaves',
'pipe get',
'PL/SQL lock timer',
'pmon timer',
'rdbms ipc message',
'slave wait',
'smon timer',
'SQL*Net break/reset to client',
'SQL*Net message from client',
'SQL*Net message to client',
'SQL*Net more data to client',
'virtual circuit status',
'WMON goes to sleep'
)
and event not like 'DFS%'
and event not like '%done%'
and event not like '%Idle%'
and event not like 'KXFX%'
order by c2 desc ;




system_wait_details

set lines 132
set pages 1000
clear breaks
clear columns

column c1 heading 'ID' format 999
column c2 heading 'Process' format A10
column c3 heading 'Event' format A30
column c4 heading 'Total Waits' format 999,999
column c5 heading 'Wait Time(s)' format 999,999
column c6 heading 'Timeouts' format 999,999
column c7 heading 'Avg. Wait(s)' format 999
column c8 heading 'Max Wait(s)' format 999

select b.sid c1,
decode(b.username,NULL,c.name,b.username) c2,
event c3,
a.total_waits c4,
round((a.time_waited / 100),2) c5,
a.total_timeouts c6,
round((average_wait / 100),2) c7,
round((a.max_wait / 100),2) c8
from
sys.v_$session_event a,
sys.v_$session b,
sys.v_$bgprocess c
where
event not like 'DFS%' and
event not like 'KXFX%' and
a.sid = b.sid and
b.paddr = c.paddr (+) and
event not in (
'lock element cleanup',
'pmon timer',
'rdbms ipc message',
'smon timer',
'SQL*Net message from client',
'SQL*Net break/reset to client',
'SQL*Net message to client',
'SQL*Net more data to client',
'dispatcher timer',
'Null event',
'io done',
'parallel query dequeue wait',
'parallel query idle wait - Slaves',
'pipe get',
'PL/SQL lock timer',
'slave wait',
'virtual circuit status',
'WMON goes to sleep')
order by 4 desc ;


currently_waiting

set lines 200
set pages 100
clear breaks
clear columns

col c1 heading 'SID' format 999
col c2 heading 'User Name' format a16 wrap
col c3 heading 'Event Name' format a10 wrap
col c4 heading 'InWait(s)' format 999,999.99
col c5 heading 'Wait Time' format 999,999.99
col c6 heading 'state' format a10 wrap
col c7 heading 'P1 text' format a10 wrap
col c8 heading 'P1 Val' format 999,999,999
col c9 heading 'P1 Raw' format a10
col c10 heading 'P2 Text' format a10 wrap
col c11 heading 'P2 Val' format 999,999,999
col c12 heading 'P2 Raw' format a10
col c13 heading 'P3 Text' format a10 wrap
col c14 heading 'P3 Val' format 999,999,999
col c15 heading 'P3 Raw' format a10

SELECT
a.sid c1,
decode(b.username, NULL,c.name, b.username) c2,
a.event c3,
a.seconds_in_wait c4,
a.wait_time c5,
a.state c6,
a.p1text c7,
a.p1 c8,
a.p2text c10,
a.p2 c11,
a.p3text c13,
a.p3 c14
FROM
v$session_wait a,
v$session b,
v$bgprocess c
where
event not like 'DFS%' and
event not like 'KXFX%' and
a.sid = b.sid and
b.paddr = c.paddr (+) and
event not in
('lock element cleanup',
'pmon timer',
'rdbms ipc message',
'smon timer',
'SQL*Net message from client',
'SQL*Net break/reset to client',
'SQL*Net message to client',
'SQL*Net more data to client',
'dispatcher timer',
'Null event',
'parallel query dequeue wait',
'parallel query idle wait - Slaves',
'pipe get',
'PL/SQL lock timer',
'slave wait',
'virtual circuit status',
'WMON goes to sleep'
)
order by 4 desc ;







buffer busy waits

Индицирует ожидание буфера в буферном кэше базы данных.
Это означает, что сеанс считывает этот буфер в кэш и/или модифицирует его.
Может также служить симптомом нехватки списков свободных участков таблиц,
поддерживающих множество параллельно выполняющихся операций INSERT.


db file parallel write

Индицирует ожидания, относящиеся к процессам DBWR. Может быть связан с
числом конфигурированных процессов DBWR или подчиненных процессов
ввода/вывода DBWR. Может также означать низкую или высокую конкуренцию
устройств.


db file scattered read

Индицирует ожидания, ассоциируемые со сканированием всей таблицы.
Может означать конкуренцию ввода/вывода или чрезмерное количество
операций ввода/вывода.


db file sequential read

Индицирует (наряду с другими вещами) ожидания, ассоциируемые
со сканированием индекса. Может означать конкуренцию ввода/вывода или
чрезмерное количество операций ввода/вывода.


db file single write

Индицирует ожидания, ассоциируемые с записью в заголовок во время
контрольной точки. Типично для среды со слишком большим числом файлов
данных.


direct path read

Индицирует ожидания, ассоциируемые с разрешенным прямым
вводом/выводом. Обычно указывает на конкуренцию ввода/вывода за
устройства.


direct path write

To же, что и выше. Относится к операциям чтения.


enqueue

Индицирует ожидания, ассоциируемые с внутренним механизмом работы с
очередями для блокировок различных ресурсов и компонентов Oracle. Полный
список ситуаций, связанных с постановкой в очередь в Oracle, можно найти в
Приложении В к справочному руководству по Oracle.


free buffer inspected

Индицирует ожидания, ассоциируемые с процессом идентификации
свободного буфера в буферном кэше базы данных для переноса в него
данных.


free buffer waits

Индицирует недостаток свободных буферов в буферном кэше базы данных.
Это может означать одно из двух: либо буферный кэш базы данных слишком
мал, либо "грязный список" (список модифицированных блоков кэша) не
переписывается на диск достаточно быстро. Если дело в этом,
сконфигурируйте большее количество процессов DBWR или подчиненных
процессов ввода/вывода, в зависимости от обстоятельств. Это событие
происходит, когда инспектирующее свободные буферы событие не находит ни
одного свободного буфера.


latch free

Индицирует конкуренцию за защелку (внутреннюю блокировку) для
конкретного номера защелки (latch*). Убедитесь, что число защелок было
настроено на максимально разрешенное значение, для чего проверьте
релевантные (относящиеся к делу) параметры файла init.ora. Если проблема
остается, необходимо определить, что вызывает конкуренцию за защелку.
Событие latch free - это всего лишь симптом более серьезной проблемы.
Например, если получающийся в результате номер защелки является
защелкой библиотечного кэша (при этом коллективный пул настроен должным
образом), ситуация может означать значительный объем жесткого
синтаксического анализа. Это обычно является проблемой для приложений,
содержащих в себе жестко закодированные значения. Необходимо либо
переписать приложение, используя переменные связи, либо перейти к
Oracle8i и использовать CURSOR_SHARING=force (или искать другие способы).


library cache load lock

Требуется для загрузки объектов в библиотечный кэш. Такое событие
ожидания может произойти, если имеет место значительное число
загрузок/перезагрузок (обычно подобное происходит вследствие либо
недостаточного многократного использования операторов SQL, либо из-за
неправильно выбранного размера области коллективного пула).


library cache lock

Индицирует ожидания, ассоциируемые с одновременным выполнением
нескольких процессов, обращающихся к библиотечному кэшу. Может означать
неправильный выбор размера области коллективного пула, так как эту
блокировку необходимо захватить для размещения объектов в библиотечном
кэше.


library cache pin

Индицирует ожидания, которые ассоциируются с одновременными
обращениями к библиотечному кэшу и могут происходить в тех случаях, когда
необходимо модифицировать или проверить конкретный объект в
библиотечном кэше.


log buffer space

Индицирует потенциальную проблему: LGWR не способен поддерживать
скорость записи серверными процессами в буфер журнала обновлений.
Обычно означает, что имеет место проблема с размером буфера журнала (он
слишком мал), или слишком медленно работает устройство (а), или имеется
конкуренция устройств, на которых размещаются работающие в онлайновом
режиме журналы обновлений.


log file parallel write

Индицирует ожидания, ассоциируемые с переписью записей протокола из
буфера журнала обновлений на диск. Обычно означает медленную работу
устройств (а) или наличие конкуренции на тех устройствах, где размещаются
работающие в онлайновом режиме журналы обновлений.


log file single write

Индицирует запись в блок заголовка журнальных файлов. Может означать
ожидания, возникающие во время выполнения контрольных точек.


log file switch

(требуется архивирование)
Ожидание означает, что ARCH не работает синхронно с LGWR. Может
произойти из-за того, что онлайновые журналы обновлений слишком малы,
устройства медленны или высока конкуренция за устройства (обычно
возникающая вследствие размещения журнальных файлов на тех же
устройствах, что и файлы данных). Имеет смысл изучить возможность
создания нескольких процессов ARCH или подчиненных процессов
ввода/вывода, в зависимости от обстоятельств.


log file switch

(незавершенная контрольная точка)
Индицирует ожидания, ассоциируемые с неверно заданными размерами
журнальных файлов (обычно слишком малыми).


log file sync

Индицирует ожидания, ассоциируемые со сбрасыванием на диск буферов
журналов при выполнении операции фиксирования транзакции, Если
ожидания являются устойчивыми, это может означать конкуренцию устройств,
на которых размещены онлайновые файлы журналов обновлений и/или
медленную работу устройств.


SQL*Net more data from client/to client

Индицирует затраченное время в процессе взаимодействия
пользовательского и серверного процессов. В некоторых довольно редких
случаях указывает на проблемы при передаче по сети, но по большей части
может быть проигнорировано. Если приложение поддерживает конфигурацию
ARRAYSIZE (например, Oracle Forms, SQL*Plus, Рго*С и т. д.),
конфигурирование ARRAYSIZE на значение, превосходящее значение по
умолчанию, может потенциально уменьшить ожидания для этого события.


SQL*Net more data from dblink

Индицирует ожидание, ассоциируемое с распределенной обработкой
(выполнением SELECT из других баз данных). Это событие происходит, когда
онлайновые просмотры других баз данных выполняются через DBUNKS. Если
просматриваемые данные главным образом статические, их пересылка в
локальную (расположенную на этой же ЭВМ) таблицу и ее обновление по
мере необходимости могут дать существенное увеличение
производительности.



transaction

Индицирует ожидания, ассоциируемые с блокировкой транзакций операциями
отката.


undo segment extension

Индицирует динамическое выделение экстентов и расширение сегментов
отката. Это может означать нехватку (недостаточность) заданного числа
сегментов отката или слишком малое значение оптимального числа
MINEXTNTS для этих сегментов.


write complete waits

Индицирует ожидания, связанные с буферами, которые необходимо
переписать на диск. Такая запись может быть вызвана обычным старением
блоков из буферного кэша базы данных.



Более подробное описание событий ожидания:


События ожидания – это статистики, значения которых увеличиваются серверным процессом (потоком), что бы указать, что он должен был ожидать завершения события, перед тем как продолжить обработку. Увеличение количества и продолжительности событий ожиданий может свидетельствовать о возникающих проблемах производительности. Мониторинг событий ожидания является важной составной частью работы администратора баз данных.

Классы событий ожидания

Для облегчения мониторинга ожиданий, все события ожидания oracle разделены на классы. Следующий список описывает каждый из этих классов:

Administrative - ожидание пользователем результатов выполнения DBA команд (например, пересоздание индекса).

Application - ожидание результатов из пользовательского программного кода (например, ожидание блокировки, вызванное блокировкой уровня строки или явными командами блокировки).

Cluster - ожидания, связанные с ресурсами Real Application Clusters (например, глобальные ресурсы кэша, такие как 'gc cr block busy').

Commit - класс включает только одно событие ожидания - ожидание подтверждения записи в журнал после фиксации транзакции ('log file sync').

Concurrency - ожидание внутренних ресурсов базы данных (например, защёлки).

Configuration - ожидания вызванные неправильной конфигурацией базы данных или ресурсов экземпляра (например, карликовые размеры файлов журнала или разделяемого пула).

Idle - ожидания, показывающие неактивность сеанса в ожидании работы (например, 'SQL*Net message from client').

Network - ожидания связанные с обменом сообщениями по сети (например, 'SQL*Net more data to dblink').

Other – ожидания, которые обычно не должны происходить в системе (например, 'wait for EMON to spawn').

Queue - содержит события, которые показывают задержки получения дополнительных данных в канальной среде. Время, затраченное в этих ожиданиях, указывает на неэффективность или другие проблемы в канале, что влияет на такие функции Oracle, как Oracle Streams, параллельные запросы или PL/SQL пакеты DBMS_PIPE.

Scheduler – ожидания связанные с менеджером ресурсов (например, 'resmgr: become active').

System I/O – ожидания ввода-вывода фоновых процессов (например, ожидание DBWR 'db file parallel write').

User I/O – ожидания ввода-вывода пользовательских процессов (например, 'db file sequential read' ).



Параметры событий ожидания

Большинство  событий ожидания имеют параметры, с помощью которых можно получить дополнительную информацию об ожидании. Некоторые из этих параметров специфичны для конкретного события ожидания, другие имеют общее предназначение. Ниже приведены наиболее часто встречающиеся общие параметры событий ожидания:

block#

Номер ожидаемого блока относительно начала файла.

break?

Если значение этого параметра равняется 0, был отправлен сброс клиенту. Ненулевое значение указывает, что было отправлено прерывание.

class

Класс блока описывает, как используется содержание блока. Например, класс 1 представляет блок данных, и класс 4 представляет заголовок сегмента.

dba

Параметр представляет из себя адрес блока данных, который в свою очередь состоит из числа файла и номера блока.

driver id

Адрес функции отсоединения используемого в настоящий момент драйвера.

file#

Номер файла базы данных.

id1

Первый идентификатор (id1) очереди с ожиданием или глобальной блокировки принимает своё значение от P2 или P2RAW. Значение идентификатора зависит от имени (P1).

id2

Второй идентификатор (id1) очереди с ожиданием или глобальной блокировки принимает своё значение от P3 или P3RAW. Значение идентификатора зависит от имени (P1).

le

Относительный индекс в V$GC_ELEMENT

mode

Параметр обычно хранится в младших байтах P1 или P1RAW и указывает на режим запроса очереди или глобальной блокировки. Существуют следующие значения этого параметра:

Значение режима

Описание
1    Null mode
2    Sub-Share
3    Sub-Exclusive
4    Share
5    Share/Sub-Exclusive
6    Exclusive


name and type

Имя или тип блокировки с очередью или глобальной блокировки может быть определены по двум старшим байтам P1 или P1RAW. Имя определяется всегда двумя символами.

session#

Идентификатор неактивного сеанса (SID).

waited

Общая сумма времени, которую ожидал сеанс, прежде чем закончиться.

Описания событий ожидания

Ниже перечислены названия событий ожидания, их краткие описания,  единицы измерения времени и параметры:

alter system set dispatcher

Сеанс выполнил оператор ALTER SYSTEM SET DISPATCHER = string и ожидает старта диспетчеров.

Время ожидания: сеанс будет ждать 1 / 100 секунды, чтобы затем проверить, стартовали ли диспетчеры. Если нет, сеанс ожидает их старта снова.

Параметры:

waited                 Показывает, сколько раз сеанс ожидал интервал в 1 / 100 секунды.

batched allocate scn lock request

Сеанс ожидает другой процесс, чтобы выделить системный номер изменения (SCN).  Если время, в течение которого приоритетный процесс ожидал получения другим процессом SCN, истекло, то такой приоритетный процесс получит SCN.

Время ожидания: составляет 1 секунду при условии, что для выделения SCN требуется меньше времени.

BFILE check if exists

Сеанс ожидает проверки на существование внешнего большого объекта (LOB).

Время ожидания: общее время, прошедшее с начала вызова exists

Параметры:  session#, waited

BFILE check if open

Сеанс ожидает открытия внешнего большого объекта (LOB).

Время ожидания: общее время, прошедшее с начала вызова isopen

Параметры:  session#, waited

BFILE closure

Сеанс ожидает закрытия внешнего большого объекта (LOB).

Время ожидания: общее время, прошедшее с начала вызова close

Параметры:  session#, waited

BFILE get length

Сеанс ожидает, чтобы проверить размер  внешнего большого объекта (LOB).

Время ожидания: общее время, прошедшее с начала вызова проверки размера

Параметры:  session#, waited

BFILE get name object

Сеанс ожидает, чтобы найти или сгенерировать внешнее имя внешнего большого объекта (LOB).

Время ожидания: общее время, прошедшее до завершения  make external file name.

Параметры:  session#, waited

BFILE get path object

Сеанс ожидает, чтобы найти или сгенерировать внешний путь внешнего большого объекта (LOB).

Время ожидания: общее время, прошедшее до завершения  make external path.

Параметры:  session#, waited

BFILE internal seek

Сеанс ожидает окончания позиционирования в пределах внешнего большого объекта (LOB).

Время ожидания: общее время, прошедшее до завершения seek.

Параметры:  session#, waited

BFILE open

Сеанс ожидает открытия внешнего большого объекта (LOB).

Время ожидания: общее время, прошедшее с начала вызова isopen.

Параметры:  session#, waited

BFILE read

Сеанс ожидает окончания чтения внешнего большого объекта (LOB).

Время ожидания: общее время, прошедшее до завершения read.

Параметры:  session#, waited

broadcast mesg queue transition

Процессы входят в "wait for broadcast mesg queue transition", когда очистка дескриптора канала публикатора обращается к надёжному  широковещательному каналу. Публикатор ответственен за перемещение сообщения в свободную очередь, но он не может это сделать, пока сообщение не находится в готовой очереди. Если сообщение всё ещё не находится в готовой очереди, то процесс ожидает при входе. Это ожидание события наиболее вероятно обнаружиться, когда процесс Oracle собирается нормально завершиться или когда PMON очищает мёртвый процесс. Переданное сообщение находится в очереди восстановления другого дескриптора канала (например, ch2).

Время ожидания: изменяется

Параметры:

channel handle -  указатель дескриптора канала публикатора

message -  указатель широковещательного сообщения

location -  число, указывающее на функцию в KSR, где процесс ожидает

>= 10.2 |

broadcast mesg recovery queue transition

Процессы входят в "wait for broadcast mesg recovery queue transition", когда очистка дескриптора канала публикатора обращается к надёжному  широковещательному каналу. Широковещательное сообщение находится в очереди восстановления другого дескриптора канала. Процесс ожидает при входе, если сообщение должно быть удалено из очереди восстановления другого дескриптора канала.  Это ожидание события наиболее вероятно обнаружиться, когда процесс Oracle собирается нормально завершиться или когда PMON очищает мёртвый процесс. Переданное сообщение находится в очереди восстановления другого дескриптора канала (например, ch2).

Время ожидания: изменяется

Параметры:

channel handle  -  указатель дескриптора канала публикатора.

message -  указатель широковещательного сообщения

location -  число, указывающее на функцию в KSR, где процесс ожидает

>= 10.2 |

buffer busy waits

Ожидание пока буфер не станет доступным. Событие происходит из-за того, что буфер  читается в буферный кэш другим сеансом (и сеанс ожидает этого чтения), или буфер находится в буферном кэше  в несовместимом режиме (то есть, другой сеанс изменяет этот буфер).

Время ожидания: Нормальное время ожидания составляет 1 секунду. Если сеанс уже ожидал буфер во время последнего ожидания, то следующее время ожидания будет 3 секунды.

Параметры:  file#, block#

Id - событие ожидания занятого буфера, вызываемое из различных мест в сеансе

buffer deadlock

Oracle в действительности не ожидает на этом событии, приоритетный процесс возвращает CPU. Поэтому возможность отловить это событие крайне мала. Это не взаимная блокировка вызванная приложением, а лишь предполагаемая взаимная блокировка на уровне кэша. Она возникает, когда слой кэша не может получить буфер в определенном режиме в пределах определенного количества времени.

Время ожидания: 0 секунд. Приоритетный процесс только возвращает CPU, после чего обычно помещается в конец CPU очереди выполнения.

Параметры:  class, mode, dba

Flag - флаг указывает на внутренние флаги, используемые сеансом, чтобы получить блок

buffer for checkpoint

Буфер не мог быть отмечен контрольной точкой, потому что некоторый процесс изменяет его. Это означает, что после ожидания, DBWR отсканирует буферный кэш снова. Данное событие могло произойти во время закрытия базы данных или после того, как пользователь сделал локальную контрольную точку. Во время этой ситуации не может быть закрыта база данных.

Время ожидания:          1 секунда.

Параметры:                     mode, dba

state – состояние указывает статус содержимого буфера

buffer# - индекс блока находящегося в буфферном кэше (V$BH)

 <= 10.1 |

buffer latch

Сеанс ожидает получения защёлки хешированной цепочки буферов (buffer hash chain).  Прежде всего, используется в подпрограммах получения дампа.

Время ожидания: 1 секунда.

Параметры:  class, mode, dba

latch addr – виртуальный адрес в SGA, где эта защёлка расположена.

chain# - индекс в массиве хешированной цепочки буферов. Когда индекс равен 0xfffffff,  приоритетный процесс ожидает защёлку LRU.

buffer read retry

Событие имеет место только тогда, когда экземпляр монтируется в разделяемом режиме (Oracle Real Application Cluster). Возникает, если во время чтения буфера его содержимое изменилось. Это означает одно из двух:

Номер версии, адрес блока данных или номер инкарнации больше не соответствуют порядковому номеру, сохранённому в блоке
Полученная и хранимая контрольная сумма блока  не соответствует друг другу
Блок будет повторно прочитан (может быть  до 3 неудачных попыток), после чего предполагается повреждение, и поврежденный блок выводится в файл трассировки.

Время ожидания: общее время чтения

Параметры:  file#, block#

checkpoint completed

Сеанс ожидает завершения контрольной точки. Событие может произойти, например, во время закрытия базы данных или во время выполнения локальной контрольной точки.

Время ожидания: 5 секунд.

cleanup of aborted processes

Когда порождаемый процесс прерывается в середине порождения, текущий сеанс должен ожидать, пока идентификатор (pid) нового процесса не заполниться. Как только pid будет заполнен, порождаемый процесс будет прерван.

Время ожидания: Обычно 3 секунды.

Параметры:

location – местоположение ожидания

control file parallel write

Событие возникает тогда, когда сеанс осуществляет запись физических блоков во все контрольные файлы. Это происходит в следующих случаях:

Сеанс начинает транзакцию контрольного файла (чтобы удостовериться, что контрольные файлы актуальны в случае, если сеанс аварийно завершается до того как транзакция контрольного файла зафиксирована)
Сеанс фиксирует транзакцию контрольного файла
Изменяется общая запись в контрольном файле, новое значение записывается во все контрольные файлы
Время ожидания: время, которое требуется, чтобы закончить все записи во все контрольные файлы.

Параметры:

files – количество контрольных файлов в которые записывает сеанс

blocks – количество блоков, которые сеанс записывает в контрольный файл

requests – количество запросов ввода-вывода нужных сеансу для записи

control file sequential read

Чтение из контрольного файла. Может происходить, например при:

Создание резервной копии контрольных файлов
Разделении информации из контрольных файлов (между экземплярами)
Чтения других блоков контрольных файлов
Чтение блока заголовка
Время ожидания: общее время чтения.

Параметры:

file# – номер контрольного файла из которого сеанс читает.

block# – номер блока в контрольном файле, с которого сеанс начинает чтение. Размер блока является физическим размером блока порта (обычно 512 байтов, у некоторых портов в UNIX может быть 1 или 2 Кбайта).

blocks – количество блоков, которые сеанс пытается прочитать.

control file single write

Ожидание происходит тогда, когда разделяемая информация контрольных файлов записывается на диск. Это атомарная операция защищаемая блокировкой с очередью (CF), для того чтобы только один сеанс  мог одновременно записывать записи в базу данных.

Время ожидания: общее время записи.

Параметры:

file# – номер контрольного файла в который сеанс записывает.

block# – номер блока в контрольном файле, с которого сеанс начинает запись. Размер блока является физическим размером блока порта (обычно 512 байтов, у некоторых портов в UNIX может быть 1 или 2 Кбайта).

blocks – количество блоков, которые сеанс пытается прочитать.

cursor: mutex S

Ожидание события возникает тогда, когда сеанс делает запрос на получения мьютекса (mutex)  курсора в разделяемом режиме, в то время как мьютекс на этот же курсор был ранее захвачен в монопольном режиме другим сеансом.

Параметры:

P1 – Значение хэш-функции курсора

P2 – Значение mutex (верхние 2 байта содержат SID сеанса захватившего mutex в монопольном режиме, нижние 2 байта содержат значение 0)

P3 – Условие mutex (internal code locator) или Mutex Sleeps

cursor: mutex X

Ожидание события возникает тогда, когда сеанс делает запрос на получения мьютекса (mutex) курсора в монопольном режиме, в то время как мьютекс на этот же курсор был ранее захвачен в монопольном режиме другим сеансом или удерживается в разделяемом режиме несколькими сеансами. Для получения сеансом мьютекса на курсор в монопольном режиме, удержания мьютекса в других сеансах должны быть освобождены.

Параметры:

P1 – Значение хэш-функции курсора

P2 – Значение mutex (верхние 2 байта содержат SID сеанса захватившего mutex в монопольном режиме, нижние 2 байта содержат значение 0)

P3 – Условие mutex (internal code locator) или Mutex Sleeps

cursor: pin S

Ожидание события возникает тогда, когда сеанс хочет обновить закрепление (pin) разделяемого мьютекса, в то время как другой сеанс обновляет закрепление разделяемого мьютекса для того же самого курсора. Обычно это событие наблюдается редко, так как обновление закрепления разделяемого мьютекса происходит очень быстро.

Время ожидания: микросекунды

Параметры:

P1 – Значение хэш-функции курсора

P2 – Значение mutex (верхние 2 байта содержат SID сеанса захватившего mutex в монопольном режиме, нижние 2 байта содержат значение 0)

P3 – Условие mutex (internal code locator) или Mutex Sleeps

cursor: pin S wait on X

Ожидание события возникает тогда, когда сеанс запрашивает закрепление (pin) разделяемого мьютекса, в то время как другой сеанс удерживает закрепление мьютекса в монопольном режиме для того же самого курсора.

Время ожидания: микросекунды

Параметры:

P1 – Значение хэш-функции курсора

P2 – Значение mutex (верхние 2 байта содержат SID сеанса захватившего mutex в монопольном режиме, нижние 2 байта содержат значение 0)

P3 – Условие mutex (internal code locator) или Mutex Sleeps

cursor: pin X

Ожидание события возникает тогда, когда сеанс делает запрос на закрепление мьютекса (mutex) курсора в монопольном режиме, в то время как закрепление мьютекса в монопольном режиме на этот же курсор был ранее получено другим сеансом или удерживается в разделяемом режиме несколькими сеансами. Для получения сеансом закрепления мьютекса в монопольном режиме на курсор, закрепления мьютекса в других сеансах должны быть освобождены.

Время ожидания: микросекунды

Параметры:

P1 – Значение хэш-функции курсора

P2 – Значение mutex (верхние 2 байта содержат SID сеанса захватившего mutex в монопольном режиме, нижние 2 байта содержат значение 0)

P3 – Условие mutex (internal code locator) или Mutex Sleeps

Data Guard: process clean up

Ожидание события возникает во время аварийного завершения процесса Data Guard. Data Guard будет ждать одну секунду для освобождения ресурсов процесса.

Data Guard: process exit

Ожидание события возникает во время аварийного завершения процесса Data Guard. Data Guard будет ждать завершения процесса перед любой очисткой ресурсов процесса, которая может понадобиться. При необходимости  он будет засыпать на одну секунду до следующей проверки на завершение процесса.

Data Guard Broker: single instance

Процесс  Data Guard Broker (DMON) ожидает полной остановки других экземпляров в кластере перед продолжением операций брокера.

Время ожидания: зависит от числа экземпляров, но не превышает 30 секунд

db file parallel read

Данное событие ожидания происходит во время восстановления. Так же оно может возникать во время упреждающей выборки блоков данных в виде оптимизации (вместо того что бы выполнять множественные одноблочные чтения). Блоки базы данных должны, которые должны подлежать восстановлению читаются параллельно из базы данных.

Время ожидания: ожидание пока все операции ввода-вывода не завершаться

Параметры:

files – число файлов из которых читает сеанс

blocks– общее количество блоков, которые будут  считаны

requests– общее количество запросов ввода-вывода (равное количеству блоков)

db file parallel write

Событие возникает в DBWR. Оно показывает, что DBWR выполняет параллельную запись в файлы и блоки. Когда выполняется последний ввод –вывод на диск, возникает ожидание окончания операции.

Время ожидания: Ожидание пока операция ввода-вывода не завершится

Параметры:

requests - общее количество запросов ввода-вывода (равное количеству блоков)

interrupt

timeout - значение тайм-аута в сотых частях секунды (до завершения операции ввода-вывода).

db file scattered read

Событие подобно “db file sequential read” за исключением того, что сеанс читает несколько блоков данных.

Время ожидания: время требуемое для завершения всех операций ввода-вывода.

Параметры:  file#, block#

Blocks– Число блоков которые сеанс пытается считать из file#,начиная с блокаblock#

db file sequential read

Сеанс ожидает, пока выполняется последовательное чтение из базы данных. Это событие также используется  для восстановления контрольного файла, дампа и получения заголовков файлов данных.

Время ожидания: время, требуемое для завершения всех операций ввода-вывода.

Параметры:  file#, block#

Blocks – Число блоков, которые сеанс пытается считать (должно равняться 1).

db file single write

Событие ожидания используется при записи в заголовки файлов.

Время ожидания: фактическое время, требуемое для завершения всех операций ввода-вывода.

Параметры:  file#, block#

Blocks – Число блоков, которые сеанс пытается записать в file#,начиная с блокаblock#

DFS db file lock

Событие имеет место только для DBWR в Real Application Clusters. Каждый DBWR в каждом экземпляре держит глобальную блокировку (DF) в разделяемом режиме на каждый файл. Экземпляр, который пытается перевести файл в offline режим, расширяет глобальную блокировку от разделяемого до монопольного режима. Событие сигнализирует другим экземплярам, что надо синхронизировать их SGA и контрольные файлы, перед тем как файл будет переведён в  offline режим.

Время ожидания: 1 секунда в цикле. DBWR ожидает в цикле (sleep, check) пока другие экземпляры не понизят блокировки до NULL режима.  В это время, DBWR не может выполнять другие задачи, например, такие как запись буферов.

Параметры:  file#

DFS lock handle

Сеанс ожидает получения дескриптора блокировки для запроса глобальной блокировки. Дескриптор блокировки идентифицирует глобальную блокировку. С этим дескриптором могут быть выполнены другие операции на этой глобальной блокировке (так как он идентифицирует глобальную блокировку в будущих операциях, таких как, например операции преобразования или освобождения). Глобальная блокировка поддерживается DLM.

Время ожидания: Сеанс ожидает в цикле, пока не получит дескриптор блокировки из DLM. Длительность ожидания в цикле 0.5 секунд.

Параметры:  name, mode, id1, id2

direct path read

Во время операций прямого доступа, данные асинхронно читаются из файлов базы данных. На некотором этапе сеанс должен удостовериться, что весь асинхронный ввод-вывод на диск был завершён. Событие так же может произойти, если во время прямого чтения нет больше доступных слотов для хранения невыполненных запросов загрузки (запрос загрузки мог состоять из нескольких операций ввода-вывода).

Время ожидания: 10 секунд. Сеанс будет осведомлён о завершении асинхронного ввода-вывода. Сеанс не будет ожидать все 10 секунд.  Ожидание длиться в цикле, пока все операции ввода-вывода не завершатся. 

Параметры:

descriptor address - указатель на контекст незавершённых  операций прямого ввода-вывода, завершения которых ожидает сеанс.

first dba – адрес блока (dba) самой первой операции ввода-вывода в контексте, на который ссылается адрес дескриптора.

block cnt – Число корректных буферов в контексте на который ссылается адрес дескриптора.

direct path sync

Во время операций прямого доступа, данные асинхронно пишутся в файлы базы данных. В некоторый момент времени сеанс должен гарантировать, что весь ожидающий асинхронный ввод-вывод был завершён на диск. В это время Unix fsync команда, которая синхронизует данные с диском, подтверждает, что все записи завершились и все данные на диске.

Время ожидания: время, потраченное на завершение операций fsync, которое обычно является временем, потраченным, чтобы завершить ожидающий ввод-вывод.

Параметры: file#

flags - флаги используемые для отладки

direct path write

Во время операций прямого доступа, данные асинхронно пишутся в файлы базы данных. В некоторый момент времени сеанс должен гарантировать, что весь ожидающий асинхронный ввод-вывод был завершён на диск. Событие так же может произойти, если во время прямой записи нет больше доступных слотов для хранения невыполненных запросов загрузки (запрос загрузки мог состоять из нескольких операций ввода-вывода).

Время ожидания: 10 секунд. Сеанс будет осведомлён о завершении асинхронного ввода-вывода. Сеанс не будет ожидать все 10 секунд.  Ожидание длиться в цикле, пока все операции ввода-вывода не завершатся. 

Параметры:

descriptor address - указатель на контекст незавершённых  операций прямого ввода-вывода, завершения которых ожидает сеанс.

first dba – адрес блока (dba) самой первой операции ввода-вывода в контексте, на который ссылается адрес дескриптора.

block cnt – Число корректных буферов в контексте на который ссылается адрес дескриптора.

Disk file operations I/O

Событие ожидания используется для файловых операций (к примеру, open, close, seek, resize).  Оно так же может использоваться и для различных операций ввода-вывода, таких как дамп блока и доступ к файлу паролей.

Время ожидания: фактическое время, которое требуется для того, чтобы сделать ввод-вывод.

Параметры:

FileOperation – тип файловой операции

fileno – идентификационный номер файла

filetype – тип файла (для примера, файл данных, файл журнала)

dispatcher shutdown

Во время завершения работы (normal, immediate) экземпляр должен ожидать завершения работы диспетчеров. Сеанс, который инициировал завершение работы экземпляра, посылает сигналы каждому диспетчеру и ожидает завершения диспетчерского процесса.

Время ожидания: 1 секунда

Параметры:

waited - Указывает на общее время ожидания. После истечения 5 минут сеанс записывает в alert файл и файлы трассировки сообщение о возможной проблеме.

dispatcher timer

Событие в основном означает, что диспетчер неактивен и ожидает некоторой работы.

Время ожидания: 60 секунд

Параметры:

sleep time – Задаваемое время засыпания. Диспетчер быстрее возвратиться к работе, если получит сообщение от данных полученных из сети или процессов разделяемого сервера о том, что данные надо отослать обратно клиенту.

duplicate cluster key

Данное событие может возникнуть при создании нового кластерного ключа. Если обнаруживается, что другой процесс  вставил кластерный ключ в блок данных или индекса, то сеанс ожидает, чтобы потом повторить вставку ключа. При повторной попытке должен быть найден корректный кластерный ключ.

Время ожидания: 0.01 секунды

Параметры:

dba – адрес блока, в который сеанс пытается вставить кластерный ключ

enq: OW – initialization

Сеанс будет ожидать на этом событии, если он пытается инициализировать  database wallet, когда другой сеанс уже начал инициализацию.

Время ожидания:  Общее время, необходимое для инициализации контекста wallet

enq: OW – termination

Сеанс будет ожидать на этом событии, если он пытается завершить  database wallet, когда другой сеанс уже начал завершение.

Время ожидания: Общее время, необходимое для освобождения памяти  используемой контекстом wallet и завершения контекста.

enqueue

Сеанс ожидает локальной блокировки. Ожидание зависит от имени блокировки.

Время ожидания:  зависит от имени блокировки

Параметры: name, mode


flashback buf free by RVWR

Событие ожидания имеет место тогда, когда включен Flashback Database. Сеанс ожидает процесса (RVWR), который записывает данные журнала flashback на диск, когда буферы заполнены. Сеанс будет ожидать до тех пор, пока RVWR не освободит буферы.

Если данное событие выходит на вершину ожиданий, это означает, что файловая система или хранение области Fast Recovery на уровне системы не имеют достаточной пропускной способности чтобы записывать журналы flashback.

Время ожидания: 1 секунда

flashback logfile sync

Ожидание данных flashback database, которые будут записаны на диск.

Время ожидания: Включает время записи данных flashback  процессом RVWR плюс  регистрацию процесса.

free buffer waits

Событие может произойти если:

Все чтения буфера приостановлены. Это происходит в случаях, когда файл был в режиме только для чтения, а стал в режиме записи-чтения. Все существующие буферы должны стать недействительными, так как они не связаны с элементами блокировок (необходимыми при монтировании  в параллельном (разделяемом) режиме). Поэтому буферы кэша не назначаются адресам блоков данных до тех пор, пока они не станут недействительными.
Сеанс перемещал некоторые модифицированные (грязные) буферы в очередь модифицированных буферов и эта очередь стала полной. Очередь должна быть записана сначала. Сеанс будет ожидать на этом событии, а затем попробует ещё раз найти свободный буфер.
Осуществляется поиск свободных буферов. Если свободный буфер не найден, то Oracle ожидает одну секунду, а затем пытается снова получить буфер (зависит от контекста).
Время ожидания: 1 секунда

Параметры: file#, block#

free global transaction table entry

Сеанс ожидает свободный слот в глобальной таблице транзакции (используемой опцией Distributed Database). Сеанс будет  ожидать в течение 1 секунды, после чего повторит запрос.

Время ожидания: 1 секунда

Параметры:

tries – число попыток поиска свободного слота в глобальной таблице транзакции

free process state object

Используется во время создания процесса. Сеанс сканирует таблицу процессов и ищет свободный слот процесса. Если ни один свободный слот не найден, PMON проверяет, все ли процессы, находящиеся в таблице живы. Если найдены мёртвые процессы, то PMON уберёт их и сделает слот доступным для новых процессов. После этого, ожидающий процесс повторно сканирует таблицу процессов, что бы найти новый слот.

Время ожидания: 1 секунда

gc recovery quiesce

Восстановление экземпляра ожидает завершения операции глобального кэша.

Время ожидания: Общее время завершения операции глобального кэша.

Параметры: file#, block#, class

GCS lock open S

Сеанс ожидает получения ресурса в разделяемом режиме на блоке, который идентифицируется параметрами  file# и block#.

Время ожидания: 1 секунда

Параметры: file#, block#, class

GCS lock open X

Сеанс ожидает получения ресурса в монопольном режиме на блоке, который идентифицируется параметрами file# и block#.

Время ожидания: 1 секунда

Параметры: file#, block#, lenum

gcs remastering wait for drop pkey

Сеанс, удаляющий объект ожидает демона менеджера блокировок (LMD), чтобы удалить связь объекта с экземпляром.

 Время ожидания: 20 сотых частей секунды

Параметры:    

pkey – идентификатор удаляемого объекта

global cache busy

Сеанс ожидает конвертации буфера из текущего разделяемого в монопольный текущий статус.

Время ожидания: 1 секунда

Параметры: file#, block#, le

global cache lock cleanup

PMON ожидает очистки процессом LCK контекста блокировки после того, как приоритетный процесс аварийно завершился во время операции блокировки глобального кэша.

Время ожидания: 1 секунда

Параметры: file#, block#, lenum

global cache freelist

Все освобождённые блокировки использованы и была запрошена новая блокировка. Чтобы сделать элемент ресурса доступным, он проверяется с помощью запроса ping.

Время ожидания:  продолжительность операции проверки элемента ресурса с помощью запроса ping.

inactive session

Это событие используется в двух целях:



Переключение сеансов. Если определён период тайм-аута, то сеанс будет ожидать заданное количество времени, после чего отсоединиться.
Уничтожение сеансов. Может выполняться с помощью KILL SESSION или внутреннего запроса. Уведомив сеанс об уничтожении, событие ожидает завершения сеанса в течение 1 минуты.


Время ожидания: 1 секунда

Параметры: session#, waited

inactive transaction branch

Сеанс ожидает ветвь транзакции, которая в настоящий момент используется другим сеансом.

Время ожидания: 1 секунда

Параметры: waited

branch#- порядковый номер транзакции, которую ожидает сеанс

index block split

Во время поиска ключа индекса в индексном блоке, Oracle обнаружил, что индексный блок в это время расщепился. Oracle будет ожидать окончания расщепления, чтобы потом снова найти ключ индекса.

Время ожидания: сеанс отдаёт CPU, таким образом нет никакого фактического времени ожидания.

Параметры:                   

rootdba – корневой блок индекса

level – уровень блока индекса, который сеанс пытается расщепить. Для листовых блоков уровень равен 0. Если уровень > 0, то это - блок ответвления. (Корневой блок можно считать специальным блоком ответвления).

сhilddba – блок который сеанс пытается расщепить

instance state change

Сеанс ожидает процесс SMON чтобы включить или выключить кэш или восстановление транзакции. Такое обычно происходит во время команд ALTER DATABASE OPEN или CLOSE.

Время ожидания:  Время ожидания зависит от количества времени, которое занимает действие (то есть, количество необходимого для восстановления)

Параметры:                   

layer - значение может быть 1 или 2. Если 1, это означает, что уровень транзакции хочет, чтобы восстановление транзакции было выполнено. Если 2, это означает, что будет выполняться восстановление кэша.

value - значение может быть 0 (отключено) или 1 (включено)

waited- число секунд ожидания

io done

Сеанс ожидает завершения ввода-вывода, или доступности подчинённого  процесса, для передачи ему запроса ввода-вывода. Это событие имеется на платформах, которые не поддерживают асинхронный ввод-вывод.

Время ожидания: 50 миллисекунд

Параметры:    

msg ptr – указатель на запрос ввода-вывода

kcl bg acks

Сеанс ожидает завершения операций фонового процесса (ов) LCK. Например:



Восстановление блокировки
Инициализация блокировок (запуск)
Завершение блокировок (завершение)


Время ожидания: 10 секунд

Параметры:    

count – число закончившихся процессов LCK

loops – колличество ожиданий  завершения операций процесса LCK

ksxr wait for mount shared

Межэкземплярное широковещательное средство экземпляра Oracle ожидает завершение монтирования базы данных в разделяемом режиме.

Время ожидания:  время, потраченное на монтирование экземпляра. Если значение неопределенное, то, скорее всего, запуск экземпляра завис.

ktm: instance recovery

Сеанс ожидает процесс SMON, чтобы завершить экземпляр, восстановить транзакцию или очистить сегмент сортировки.

Время ожидания: время ожидания может измениться и зависит от объёма необходимого восстановления

Параметры:

undo segment# - если значение 0, SMON, вероятно, выполняет восстановление экземпляра. Если P1 > 0, то для поиска сегмент отката можно использовать следующий запрос:

select *
  from v$rollstat
 where usn = undo segment#;

latch activity

Событие используется для определения того, должна ли быть защёлка очищена.

Время ожидания: от 0.05 сек. до 0.1 сек.

Параметры:

address – адрес проверяемой защёлки

number – номер активной защёлки. Для поиска дополнительной информации можно использовать следующий запрос:

select *
from v$latchname
where latch# = number;

latch free

Процесс ожидает защёлку, которая в настоящий момент захвачена другим процессом.

Время ожидания: Время ожидания увеличивается по экспоненте и не включает в себя повторение процесса получения защёлки (spin активное ожидание).  Максимальное время ожидания так же зависит от числа защёлок, которые захватил процесс. В пределах 2 секунд ожидание инкрементное.

Параметры:

address – адрес ожидаемой защёлки

number – номер защёлки. Для поиска дополнительной информации можно использовать следующий запрос:

select *
from v$latchname
where latch# = number;

latch: cache buffers chains

Событие ожидания получения защёлки cache buffers chains. Данная защёлка служит для того, чтобы защитить буферный список в буферном кэше. Используется при поиске, добавлении и удалении буфера из буферного кэша. При этих операциях на цепочку состоящую из нескольких буферов буферного кэша накладывается защёлка, которая препятствует доступу других сеансов к конкретному блоку находящемуся в данной буферной цепочке. В это время другие сеансы осуществляющие доступ к блоку будут ожидать получения защёлки на данной буферной цепочке. После завершения операции защёлка снимается.

Большое количество данного события ожидания может свидетельствовать о наличии «горячего» (интенсивно используемого) блока в буферном кэше.

library cache load lock

Сеанс пытается найти блокировку для загрузки объекта базы данных. Блокировка для загрузки всегда захватывается в монопольном режиме, что бы никто больше не мог загрузить этот объект. Если блокировка для загрузки будет занята, то сеанс будет ожидать на этом событии, пока блокировка не станет доступной.

Время ожидания: 3 секунды (1 секунда для PMON)

Параметры:

object address – адрес загружаемого объекта

lock address –адрес используемой блокировки загрузки

mask – указывает какие части данных объекта должны быть загружены

library cache lock

Событие управляет конкуренцией между клиентами библиотечного кэша. Оно получает блокировку на указатель  объекта, чтобы:



Один из клиентов мог препятствовать тому, чтобы другие клиенты получили доступ к этому объекту
Один из клиентов мог поддерживать зависимость в течение долгого времени (например, что бы никакие другие сеансы не могли изменить объект).


Блокировка так же может запрашиваться для поиска объекта в кэше библиотеки.

Время ожидания: 3 секунды (1 секунда для PMON)

Параметры:  namespace

handle address - адрес загружаемого объекта

lock address – адрес используемой блокировки загрузки. Это не защёлка (latch) или блокировка (enqueue), а   объект состояния (State Object).

mode – указывает какие части данных объекта должны быть загружены

library cache pin

Событие управляет конкуренцией библиотечного кэша. Закрепление объекта вызывает загрузку «кучи» в память. Если клиент хочет изменить или просмотреть объект, он должен получить закрепление после блокировки.

Время ожидания: 3 секунды (1 секунда для PMON)

Параметры: namespace

handle address - адрес загружаемого объекта

pin address – адрес используемой блокировки загрузки. Это не защёлка (latch) или блокировка (enqueue), а   объект состояния (State Object).

mode – указывает какие части данных объекта должны быть загружены

library cache shutdown

Процесс, совершающий остановку экземпляра, ожидает окончания работы сеансов, перед тем как продолжить завершение работы библиотечного кэша.

LMON global data update

Операция прокручивающей миграции ожидает от  процесса LMON подтверждения, что глобальные данные обновлены.

lock manager wait for remote message

Менеджер блокировок ожидает сообщение от  удаленного менеджера блокировок в той же самой конфигурации.

Время ожидания: Прошедшее время ожидания

Параметры:

waittime - время фактического ожидания

Log archive I/O

Используется при архивировании журнальных файлов (для основной и резервной базы данных). Когда процесс архивирования исчерпывает все свои буферы ввода-вывода, он будет ожидать свободного буфера.

Время ожидания: Зависит от скорости дисков

log buffer space

Ожидание пространства в журнальном буфере. Возникает из-за того, что сеанс пишет данные быстрее, чем фоновый процесс  LGWR. Необходимо увеличить размер журнального буфера или переместить файлы журналов на более быстрые диски.

Время ожидания: Обычно 1 секунда, но если переключение журнала то 5 секунд

log file parallel write

Ожидание, возникающее при перезаписи журнальных записей из журнального буфера в файлы журнала.

Время ожидания: Время завершения ввода - вывода. Несмотря на то, что журнальные записи пишутся параллельно, запись  не считается законченной, пока не завершится последний ввод-вывод  на диск.

Параметры:

files – количество записываемых файлов

blocks – количество блоков, которые будут записаны

requests- число запросов ввода-вывода

log file sequential read

Ожидание завершения чтения из файла журнала. Используется для чтения журнальных записей из файла журнала.

Время ожидания: Время завершения физического ввода-вывода (чтение).

Параметры:  block#

log#  – Относительный порядковый номер журнального файла в группе журнальных файлов (используется только при дампе журнального файла).

blocks – число читаемых блоков

log file single write

Ожидание завершения записи в файл журнала. Используется при обновлении заголовка файла журнала. Возникает при добавлении журнального файла в группу и увеличении порядкового номера (sequence number).

Время ожидания: Время завершения физического ввода-вывода (запись).

Параметры:  block#

log#  – номер  группы  (файла) , в которую в настоящий момент времени сеанс осуществляет запись

blocks – число записываемых блоков

log file switch (archiving needed)

Ожидание переключения журнала, в связи с тем, что файл журнала, переключаемый LGWR, ещё не был заархивирован.  Необходимо проверить сигнальный файл, чтобы удостовериться, что архивирование не остановилось из-за ошибки записи. Для ускорения архивирования можно добавить дополнительные процессы архивирования или разместить архивные файлы на быстрых дисках.

Время ожидания: 1 секунда

log file switch (checkpoint incomplete) 

Ожидание переключения журнала, в связи с тем, что сеанс не может перейти на следующий журнальный файл. Переход не может быть выполнен, потому что контрольная точка для этого журнала не завершилась.

Время ожидания: 1 секунда

log file switch (clearing log file)

Ожидание переключения журнала, в связи с тем, что была выполнена команда CLEAR LOGFILE или из-за того, что была неявная очистка файла журнала при восстановлении.

Время ожидания: 1 секунда

log file switch (private strand flush incomplete)

Пользовательские сеансы при попытке генерации журнальной информации ожидают на событии, когда LGWR ждёт DBWR, чтобы завершить сбрасывание журнальной информации из IMU буферов в журнальный буфер; Когда DBWR заканчивает работу, LGWR может закончить запись в текущий журнал, и затем переключить файл журнала.

Время ожидания: 1 секунда

log file switch completion

Ожидание завершения переключения  журнала

Время ожидания: 1 секунда

log file sync

Когда пользовательский сеанс фиксирует изменения, журнальная информация должна быть сброшена в журнальный файл. Сеанс пользователя сигнализирует об этом процессу LGWR. Когда процесс LGWR закончит сброс информации из журнального буфера, он оповестит об этом сеанс пользователя.

Время ожидания: включает время затраченное на запись информации из журнального буфера и отправку сообщения.

Параметры:                   

buffer# – количество физических буферов в журнальном буфере, которые должны синхронизироваться.

log switch/archive

Используется в качестве части оператора ALTER SYSTEM ARCHIVE LOG CHANGE scn. Сеанс ожидает текущий журнальный файл от всех открытых потоков, которые будут заархивированы.

Время ожидания: до 10 секунд

Параметры:                   

thread# – номер потока, который в настоящее время архивирует текущий журнальный файл.

optimizer stats update retry

Когда сеансы пытаются обновить статистику оптимизатора для одного и того же объекта, они могут ожидать в случаях, когда один из сеансов уже получил все необходимые блокировки (закрепления) на  записях библиотечного кэша (кэша строки)  относящихся к объекту. После короткого периода времени ожидания запрос на блокировку записей повторяется. В дополнение к неявным операциям сбора и обслуживания статистики с использованием пакета DBMS_STATS, Oracle может попытаться обновить статистику для некоторых объектов или от имени пользователя или в собственных целях обслуживания.

Время ожидания: 10 миллисекунд

parallel recovery change buffer free

Координатор параллельного восстановления ожидает изменённого отображения буфера, который будет выпущен одним из подчинённых процессов восстановления.

Время ожидания: 100 миллисекунд

parallel recovery control message reply

Координатор параллельного восстановления ожидает все подчинённые процессы, что бы ответить на  синхронное управляющее сообщение.

Время ожидания: 100 миллисекунд

parallel recovery coord send blocked

Координатор параллельного восстановления не может отправить сообщение с журнальными изменениями, потому что подчинённый процесс восстановления  всё ещё  активно применяет изменения, и полученный им канал ещё не освобождён.

Время ожидания: 100 миллисекунд

parallel recovery coord wait for reply

Координатор параллельного восстановления ожидает завершения всех подчинённых процессов восстановления.

Время ожидания: 100 миллисекунд

parallel recovery coordinator waits for slave cleanup

Координатор параллельного восстановления ожидает завершения всех подчинённых процессов восстановления, чтобы завершиться корректно.

Время ожидания: 10 миллисекунд

parallel recovery read buffer free

Координатор параллельного восстановления ожидает буфер журнала, кторый будет освобождён всеми всеми подчинёнными процессами восстановления. Только после того как каждый подчинённый процесс закончит применять изменения из буфера журнала, буфер может использоваться координатором, что бы предоставить следующие журнальные данные.

Время ожидания: 100 миллисекунд

parallel recovery slave next change

Подчинённый параллельный процесс неактивен и ожидает следующего сообщения с изменениями от координатора.

Время ожидания: 100 миллисекунд

pending global transaction(s)

Событие ожидания может произойти только во время тестирования. Сеанс ожидает очистки приостановленных транзакций.

Время ожидания: 30 секунд

Параметры:

scans – сколько раз сеанс просматривал таблицу PENDING_TRANS$.

pipe get

Сеанс ожидает сообщение, которое будет получено по каналу, или истечение таймера канала.

Время ожидания: 5 секундное пробуждение (проверка) или таймер канала, установленный пользователем

Параметры:

handle address – указатель на объект библиотечного кэша для канала

buffer length – длина буфера

timeout – таймер канала установленный пользователем

pipe put

Сеанс ожидает истечение таймера канала для отправки сообщения или выделения пространства в канале.

Время ожидания: 5 секундное пробуждение (проверка) или таймер канала, установленный пользователем

Параметры:

handle address – указатель на объект библиотечного кэша для канала

buffer length – длина записи или буфера, который был помещён в канал

timeout – таймер канала установленный пользователем

PL/SQL lock timer

Событие вызывается через процедуру DBMS_LOCK.SLEEP. Наиболее вероятно произойдёт из процедур написанных пользователем.

Время ожидания: Время ожидания задаётся в сотых частях секунд и зависит от пользовательского контекста.

Параметры:

duration - продолжительность, которую пользователь определил в процедуре DBMS_LOCK.SLEEP

pmon timer

Это основное событие ожидания PMON. Когда PMON неактивен, он ожидает на этом событии.

Время ожидания: до 3 секунд, если заранее небыло уведомления

Параметры:

duration – фактическое количество времени, которое PMON провёл в режиме ожидания

prewarm transfer retry

Ожидание возникает при повторном получении хэш-защёлки, после её освобождения.

Время ожидания: 10 миллисекунд

prior process spawner to be cleaned up

Когда предшествующий процесс умирает во время порождения фонового процесса, текущий процесс который пытается породить новый фоновый процесс, ожидает, пока состояние предшествующего процесса не очистится.

Время ожидания: обычно 3 – 10 секунд

Параметры:

process_pid –идентификатор процесса (см. V$PROCESS.PID) состояние которого должно быть очищено

process_sno –порядковый номер процесса (см. V$PROCESS. SERIAL#) состояние которого должно быть очищено

process startup

Ожидание разделяемого сервера, диспетчера, или другого фонового процесса при старте.

Время ожидания:        

Ожидание 1 секунда для фонового процесса при старте. Если время истекло,  то повторное ожидание в течении 5 минут и далее в случае неудачи выдача ошибки. Если процесс запустился то событие подтвердит это.

Параметры:

type –типзапускаемогопроцесса

process# –порядковый номер запускаемого процесса

waited –общее время ожидания старта процесса

PX Deque wait

Процесс ожидает сообщения во время параллельного выполнения.

Время ожидания:

Время ожидания зависит от того, как быстро сообщение приходит, и может измениться, но это это будет короткий период времени.

Параметры:

reason –причина извлечения из очереди

sleeptime –время бездействия (sleep) сеанса

loop –общее время бездействия (sleep) сеанса

PX qref latch

У каждого процесса выполняющего параллельный запрос есть qref защёлка, которая должна быть получена прежде чем можно управлять очередью буферов.

Время ожидания: ожидание до 1 секунды

Параметры:

function – указывает тип ожидания

sleeptime –время ожидания сеанса (в сотых частях секунды)

qref –адрес процесса очереди, для которой сеанс, ожидает

PX server shutdown

Во время нормального или непосредственного (immediate) завершения работы подчинённые параллельные процессы оповещаются, чтобы они нормально очистились. Если какие-либо параллельные процессы все еще живы после 10 секунд, то они уничтожаются.

Время ожидания: ожидание до 0.5 секунды

Параметры:

nalive – число параллельных подчинённых процессов которые ещё работают

sleeptime –время бездействия начиная с момента ожидания сеанса

loop –сколько раз сеанс ожидал на этом событии

PX signal server

Это событие может произойти только в монопольном режиме. Координатор запросов сигнализирует подчинённым запросам (Query Slaves), что произошла ошибка.

Время ожидания: ожидание до 0.5 секунды

Параметры:

serial – порядковый номер подчинённого процесса очереди

error –происшедшая ошибка

nbusy –число занятых подчинённых процессов



rdbms ipc message

Фоновые процессы (LGWR, DBWR, LMS0) используют это событие, чтобы указать, что они неактивны и ждут от приоритетных процессов IPC сообщения, для того что бы сделать некоторую работу.

Время ожидания: до 3 секунд. Параметр timeout показывает истинное значение простоя

Параметры:

timeout - количество времени в течении которого сеанс ожидает сообщения IPC

rdbms ipc message block

Событие указывает, что все блоки сообщения используются, и что сеанс должен ожидать до тех пор, когда блок сообщения станет доступным.

Время ожидания: до 60 секунд

rdbms ipc reply

Событие используется для ожидания ответа от одного из фоновых процессов.

Время ожидания: определяется пользователем и показывается параметром timeout

Параметры:

from_process – фоновый процесс, которого ожидает сеанс. Ожидается ответ на сообщение IPC, отправленное этим  сеансом.

timeout – время в секундах в течении которого процесс ожидает ответ

read by other session

Событие имеет место, когда сеанс запрашивает буфер, который в настоящий момент читается в буферный кэш другим сеансом. До релиза 10.1 это событие было сгруппировано с другими ожиданиями в событие 'buffer busy wait'.

Время ожидания: буфера, который будет считан другим сеансом (в микросекундах)

Параметры: file#, block#, class#

recovery read

Параллельный подчинённый или последовательный процесс восстановления ожидает завершения чтения блока данных.

Время ожидания: время необходимое чтобы завершить физический ввод-вывод (чтение)

resmgr: become active

Сеанс ожидает активный сессионный слот ресурсного менеджера. Событие имеет место, когда включается ресурсный менеджер и число активных сеансов в текущей потребительской группе превышает текущий ресурсный план. Для уменьшения этого ожидания необходимо увеличить лимит активных сеансов для текущей потребительской группы.

Время ожидания: время, затраченное на ожидание сеансом свободного слота активных сеансов

Параметры: location – местоположение ожидания

resmgr: cpu quantum

Сеанс ожидает выделения кванта времени процессора. Событие имеет место когда менеджер ресурсов включён и регулирует потребление процессрного времени. Чтобы уменьшить возникновение этого ожидания необходимо увеличить выделение лимита CPU для сеансов текущей потребительской группы.

Время ожидания: время, затраченное на ожидание сеансом кванта процессора

Параметры: location – местоположение ожидания

resmgr: pq queued

Сеанс ожидает в очереди параллельных операторов.

Время ожидания:

Время, затраченное на ожидание сеансом доступного количества процессов параллельного выполнения, что бы  выполнить  запрос с требуемой степенью параллелизма.

Параметры: location – местоположение ожидания

rolling migration: cluster quiesce

Экземпляры ожидают на этом событии, пока кластер стартует циклическую миграцию. Экземпляры ожидают завершения любых привелигерованных операций, которые блокируют выполнения циклической миграции.

Время ожидания: 1 секунда

Параметры:

location – Будет равно 1, если это ожидание завершения привилегированных операций, после которых стартует rolling upgrade/downgrade. Будет равно 2, если это ожидание завершения rolling upgrade/downgrade на всех нодах кластера.

waits –  Число секунд ожидания в текущем местоположении.

row cache lock

Сеанс пытается получить блокировку  словаря данных.

Время ожидания: до 60 секунд

Параметры: mode

cache id – столбец CACHE# в представлении V$ROWCACHE

request – таймер канала установленный пользователем

RVWR wait for flashback copy

Ожидание конца работы процесса RVWR копирующего ретроспективные данные в flashback буфер, что бы затем записать запрошенные ретроспективные данные.

Время ожидания: 10 миллисекунд

Параметры:

copy latch # - количество защёлок копирования flashback на которых процесс ожидал RVWR

sbtbufinfo

Эта функция вызывается, когда Oracle должен обнаружить размер и число буферов ввода-вывода, выделенных на уровне SBT. Ожидание быстрое и никогда не блокируется.

Время ожидания: меньше чем одна миллисекунда

sbtgetbuf

Эта функция получает один буфер ввода-вывода, который Oracle будет использовать для ввода-вывода во время резервного задания.

Время ожидания: меньше чем одна миллисекунда

sbtmapbuf

Это - внутренняя функция, используемая, чтобы облегчить организацию буферизации данных нескольких процессов. Ожидание быстрое и никогда не блокируется.

Время ожидания: меньше чем одна миллисекунда

sbtrelbuf

Эта функция освобождает буфер ввода-вывода, который уже был обработан во время выполнения задания восстановления, для того чтобы уровень SBT мог заполнить его данными.

Время ожидания: меньше чем одна миллисекунда

scginq AST call

Вызывается сеансом, что бы найти самый высокий режим блокировки установленный на ресурсе.

Время ожидания:

0.2 секунды, но ожидание будет продолжаться пока не будет иницированно прерывание Acquisition AST в режиме NULL.

SGA: allocation forcing component growth

Процесс ожидает перемещения памяти в immediate режиме (автоматическая настройка SGA) после выдачи  ошибки 4031 для MMAN, что бы получить память и разместить её.

Время ожидания: 10 миллисекунд

SGA: MMAN sleep for component shrink

Процесс MMAN  ожидает и засыпает, что бы удовлетворить запрос автонастройки памяти по освобождению замороженных гранул памяти компонента. В релизе 10.1 это событие называлось 'wait for SGA component shrink'.

Время ожидания: 10 миллисекунд

Параметры:

P1 – идентификатор компонента (соответствующий пулу памяти)

P2 – текущий размер в гранулах

P3 – целевой размер в гранулах

SGA: sga_target resize

Запросы изменения памяти ожидают, пока sga target изменяется. В релизе 10.1 это событие называлось 'wait for sga_target resize'.

Время ожидания: 10 миллисекунд

Shared IO Pool Memory

Ожидание, пока буфер разделяемого пула ввода вывода не станет доступным. Такое происходит, когда процессы используют эти буферы для ввода-вывода, и текущий процесс должен ожидать освобождения буфера.

Время ожидания: 10 миллисекунд

11.2 |

single-task message

Выполняя единственную задачу, это событие указывает, что сеанс ожидает клиентскую сторону выполняемой программы.

Время ожидания: общее время затраченное сеансом в приложении

shared server idle wait

Событие ожидания простоя разделяемого сервера. Сервер ожидает в общей очереди виртуального канала.

Время ожидания: 30 секунд

smon timer

Основное событие простоя для SMON. SMON будет ожидать на этом событии большую часть времени, пока не наступит предел времени или не поступит уведомление от другого процеса.

Время ожидания: 5 минут (300 секунд)

Параметры:

sleeptime – время, в течении которого SMON ожидает на этом событии (в секундах)

failed – сколько раз процессу SMON поступало уведомление об ошибке

SQL*Net break/reset to client

Сервер отправляет сообщение прерывания или сброса клиенту. Серверный сеанс ожидает ответа от клиента.

Время ожидания:        

Фактическое время требуемое для возврата от клиента сообщения о прерывании и сбросе

Параметры: driver id, break?

SQL*Net break/reset to dblink

То же самое  что и SQL*Net break/reset to client, но сообщение посылается через связь базы данных.

Время ожидания:        

Фактическое время, требуемое для возврата от другого серверного процесса сообщения о прерывании и сбросе.

Параметры: driver id, break?

SQL*Net message from client

Серверный процесс ожидает сообщения от клиентского процесса.

Время ожидания:        

Время, прошедшее с момента отправки последнего сообщения  клиенту до момента времени получения сообщения от этого клиента.

Параметры: driver id

#bytes – количество байт полученных серверным процессом от клиента

SQL*Net message from dblink

Сеанс ожидает, пока серверный процесс получает сообщение от другого серверного процесса через связь.

Время ожидания:        

Время, прошедшее с момента отправки последнего сообщения серверному процессу до момента времени получения сообщения от этого серверного процесса.

Параметры: driver id

SQL*Net message to client

Серверный процесс отправляет сообщение клиенту

Время ожидания: фактическое время затраченное на отправление

Параметры: driver id

#bytes – количество байт отправленных серверным процессом клиенту

SQL*Net message to dblink

Серверный процесс передаёт сообщение другому серверному процессу через связь

Время ожидания: фактическое время затраченное на отправление

Параметры: driver id

#bytes – количество байт отправленных серверным процессом другому серверному процессу через связь

SQL*Net more data from client

Сервер ожидает клиента, что бы отправить дополнительные данные клиентскому теневому процессу в уже начатой операции.

Время ожидания: зависит от времени, которое потребовалось, что бы получить данные (включая время ожидания)

Параметры: driver id

#bytes – количество байт принятых от клиента

Обычно это событие регистрируется при передаче значительных объемов информации в сторону клиента и проблемы не представляет.

SQL*Net more data from dblink

Приоритетный процесс ожидает дополнительные данные через связь базы данных

Время ожидания: зависит от времени, которое потребовалось, что бы получить данные (включая время ожидания получения данных)

Параметры: driver id

#bytes – количество принятых байт

SQL*Net more data to client

Серверный процесс отправляет дополнительные данные клиенту. Предыдущая операция так же была отправлением.

Время ожидания: Фактическое время завершения отправления

Параметры: driver id

#bytes – число байт отправленных клиенту

SQL*Net more data to dblink

Событие указывает, что сервер снова отправляет данные по связе базы данных. Предыдущая операция так же была отправлением.

Время ожидания: Фактическое время отправления данных другому серверу

Параметры: driver id

#bytes – число байт отправленных по связи базы данных другим серверным процессам

Streams AQ: waiting for messages in the queue

Сеанс ожидает на пустой очереди OLTP (Advanced Queuing) поступления сообщения, что бы исключить это сообщение из очереди.

Время ожидания: время, которое сеанс хочет ожидать, определяется параметром wait time

Параметры:

queue id - ID очереди OLTP, в которой ожидает сеанс

process# - номер процесса сеанса

wait time – намеченное время ожидания

switch logfile command

Сеанс ожидает завершения команды SWITCH LOGFILE.

Время ожидания: 5 секунд

TCP Socket (KGAS)

Сеанс ожидает внешнего хоста для предоставления запрашиваемых данных через сетевой сокет. Большое время ожидания этого события ещё указывает на  возникновение проблемы. Приложение,  которое взаимодействует с удалённым хостом, должно ожидать, пока данные, которые оно считает, не прибыли. Кроме того, в Microsoft Windows, отдельный поток отслеживает прибытие трафика. Этот поток тратит большую часть своей жизни в ожидании отслеживания события ожидания TCP Socket (KGAS).

Время ожидания: общее время для установления сетевого соединения или прихода данных из сети

Параметры:                   

P0 – только для внутреннего пользования Oracle. Значения 8, 9, и 10 могут возникнуть только в рамках специального потока Microsoft Windows; в нормальных сеансах  значения параметра другие.

P1 – только для внутреннего пользования Oracle.

timer in sksawat

Сеанс ожидает завершения асинхронного ввода-вывода процесса ARCH.

Время ожидания: 0.01 секунда

transaction

Ожидание отката блокирующей транзакции.

Время ожидания: 1 секунда

Параметры:    

undo seg# - ID сегмента отката

slot# - ID слота в сегменте отката

wrap# - номер изменения, который последовательно увеличивается для каждой транзакции

count – сколько раз сеанс ожидал на этой транзакции

unbound tx

Сеанс ожидает, что бы увидеть, есть ли какие-либо запущенные транзакции, которые не связаны с  сегментами отката.

Время ожидания: 1 секунда

undo_retention publish retry

Это ожидание может произойти по двум причинам. Сеанс, выполняющий ALTER SYSTEM SET UNDO_RETENTION, может ожидать пока идёт кластерная реконфигурация. Или фоновый процесс MMNL может ожидать кластерного реконфигурирования, пытаясь определить максимальное значение UNDO_RETENTION.

Время ожидания: 1 секунда

Параметры:    

P1 – идентификатор показывающий, где происходит повторение. 1 - повторение публикации макимального значения  undo_retention. 2 – повторение доступа к макимальному значению  undo_retention

P2 – количество повторений (максимальное кол-во 5)

undo segment extension

Сегмент отката может расширяться или сжиматься. Сеанс должен ожидать пока все операции на сегменте отката не закончатся.

Время ожидания: 0.01 секунды

Параметры:

segment# - ID расширяющегося или сжимающегося сегмента отката

undo segment recovery

Процесс PMON откатывает мёртвую транзакцию. Ожидание продолжается, пока откат не закончится.

Время ожидания: 3 секунды

Параметры:

segment# - ID сегмента отката, содержащего откатываемую транзакцию

tx flags -  набор флагов (опций) откатываемой транзакции

undo segment tx slot

Ожидание освобождения слота транзакции в пределах выбранного сегмента отката. Ожидание длится пока слот не будет доступен.

Время ожидания:          1 секунда

Параметры:

segment# - ID сегмента отката, содержащего откатываемую транзакцию

virtual circuit status

Сеанс ожидает виртуального канала, чтобы возвратить тип сообщения показывающий статус. Событие является устаревшим и заменено на событие virtual circuit wait.

Время ожидания: 1 секунда

Параметры:

circuit# - указывает на виртуальный канал

type- указывает чего ожидает сеанс

virtual circuit wait

Сеанс ожидает завершения операции виртуального канала.

Время ожидания: 30 секунд

Параметры:

circuit# - указывает на виртуальный канал

type- указывает тип операции которую ожидает сеанс

11.2 |

WCR: replay client notify

Во время воспроизведения, Workload Replay Client всегда сохраняет открытое соединение с базой данных, чтобы обнаружить некоторые специальные ошибки. Сеанс будет находиться в ожидании, пока не произойдёт некоторое связанное с воспроизведением исключение.

Время ожидания: Ожидание пока не будет уведомление. Время каждые 30 секунд

Параметры:

who am I - идентифицирует причину ожидания администраторского потока

1 - ожидание выдачи REPLAY.START ()

2- ожидание завершения запуска воспроизведения или выдачи REPLAY.CANCEL().

11.1 |

WCR: replay clock

Сеанс будет ожидать на этом событии во время воспроизведения, если у него будут логические зависимости от другого сеанса, который еще не произвёл фиксацию изменений.

Время ожидания:

Зависит от количества конкурирующих блокировок строк в исходном сборе нагрузки.

Параметры:

wait for scn's hi 4 bytes – старшие 4 байта из 8 байтового replay SCN, на котором, на котором ожидает сеанс

wait for scn's lo 4 bytes – младшие 4 байта из 8 байтового replay SCN, на котором, на котором ожидает сеанс

11.1 |

WCR: replay lock order

Сеанс будет ожидать на этом событии во время воспроизведения, если он увидел некоторую конкуренцию за блокировку в течении сбора нагрузки.

Время ожидания:

Зависит от количества конкурирующих блокировок строк в исходном сборе нагрузки.

Параметры:

wait for scn's hi 4 bytes – старшие 4 байта из 8 байтового replay SCN, на котором, на котором ожидает сеанс

wait for scn's lo 4 bytes – младшие 4 байта из 8 байтового replay SCN, на котором, на котором ожидает сеанс

11.1 |

WCR: replay paused

Когда пользователь ввыполняет команду DBMS_WORKLOAD_REPLAY.PAUSE_REPLAY, все сеансы которые осуществляют воспроизведение ожидают на этом событии, пока воспроизведение не возобновится.

11.1 |

WCR: Sync context busy

В режиме воспроизведения по умолчанию, фиксации синхронизируются тем же  порядком как сбор нагрузки. Фиксации сериализируются с помощью Sync context. Воспроизводящий сеанс будет ожидать на этом событии, если попытается фиксировать изменения одновременно с другим воспроизводящим сеансом.

11.1 |

WMON goes to sleep

WMON является UNIX специфичным монитором ожиданий, который может использоваться, чтобы сократить количество системных вызовов, связанных с установкой таймеров для отправления или ожидания в Oracle. Должны быть установлены параметры инициализации, которые включают процесс WMON.

Время ожидания: зависит от следующего тайм-аута

write complete waits

Сеанс ожидает буфера, который будет записан. Запись вызывается нормальным старением или кросс- экземлярным вызовом.

Время ожидания: 1 секунда

Параметры:

file# - идентификатор сегмента отката содержащего откатываемую транзакцию

block# - набор флагов (опций) откатываемой транзакции

id - идентифицирует причину ожидания

writes stopped by instance recovery or database suspension

Сеанс блокируется, пока экземпляр, который запустил Instance Recovery, не закончится.

Время ожидания: 5 секунд

Параметры:

bythread# - идентификатор сегмента отката содержащего откатываемую транзакцию

ourthread# - номер потока текущего экземпляра





Комментариев нет:

Отправить комментарий