Oracle mechanics
13.03.2014
Диагностика проблем сетевых соединений с использованием Oracle wait event интерфейса
Беда пришла, как обычно, откуда не ждали — т.е. неизвестно откуда:
— ось ординат на графике мониторинга отражает резко увеличившееся время выполнения некоего набора критически важных запросов и процедур
Ну и поскольку кроме графика из логов приложения получить никакой дополнительной информации не было решительно никакой возможности — пришлось нам с Дмитрием Якубеней искать причины возникновения проблем средствами Oracle
При рассмотрении AWR на втором месте в топе было замечено нехарактерное для системы ожидание SQL*Net more data from client:
История ожидания (в части ср.продолжительности) отчётливо коррелировала с историей возникновения проблем:
Для подавляющей части этих ожиданий в ASH не отражались не только SQL_ID, но и состояние/этап выполнения:
— при V$ACTIVE_SESSION_HISTORY.TIME_MODEL = 0 из чего при желании также можно извлечь полезную информацию*
В топе наблюдаемых запросов в проблемный период был замечен служебный top_level_sql_id 5ur69atw3vfhj, очевидно характерный для фазы установки SQL*Net соединения:
Ещё более интересным оказался экспресс-анализ географического происхождения ожиданий:
— хорошо заметное отличие кол-ва и грубой оценки ср.продолжительности сетевых ожиданий точно указало на (впоследствие подтверждёные) проблемы связи с дц F и G, в то время как сетевых проблем с дц E не было
Тот же график после диагностики/исправления сетевых проблем подтвердил правильность предположений:)
*) уже после разрешения проблем посмотрел что можно «получить» из значения V$ACTIVE_SESSION_HISTORY.TIME_MODEL = 0
Например, из запроса всего текущего ASH можно заключить что time_model = 0 характерно для:
Если выделить только пользовательские процессы:
** — то кроме выполнения служебных действий (COMMIT, ROLLBACK, LOGOFF, etc.), создаётся впечатление, что time_model = 0 как-то связано с ЦПУ активностью на этапе выполнения
Что при ближайшем рассмотрении, в большинстве случаев, оказывается отражением сетевых ожиданий на этапах установки (1st — первая запись сессии в ASH) или завершения (Last) соединения:
, на что указывает и название первого параметра ожидания (на который имхо нелишне смотреть даже при session_state = ‘ON CPU’), характерного только для SQL*Net ожиданий:
Sql net message from client что это
rdbms ipc message
Фоновые процессы (LGWR, DBWR, LMS0) используют это событие, чтобы указать, что они неактивны и ждут от приоритетных процессов IPC сообщения, для того что бы сделать некоторую работу.
Время ожидания: до 3 секунд. Параметр timeout показывает истинное значение простоя
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 секунд
cache id – столбец CACHE# в представлении V$ROWCACHE
request – таймер канала установленный пользователем
RVWR wait for flashback copy
Ожидание конца работы процесса RVWR копирующего ретроспективные данные в flashback буфер, что бы затем записать запрошенные ретроспективные данные.
Время ожидания : 10 миллисекунд
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 миллисекунд
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
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 секунда
count – сколько раз сеанс ожидал на этой транзакции
unbound tx
Сеанс ожидает, что бы увидеть, есть ли какие-либо запущенные транзакции, которые не связаны с сегментами отката.
Время ожидания : 1 секунда
undo_retention publish retry
Это ожидание может произойти по двум причинам. Сеанс, выполняющий ALTER SYSTEM SET UNDO_RETENTION, может ожидать пока идёт кластерная реконфигурация. Или фоновый процесс MMNL может ожидать кластерного реконфигурирования, пытаясь определить максимальное значение UNDO_RETENTION.
Время ожидания : 1 секунда
P2 – количество повторений (максимальное кол-во 5)
undo segment extension
Сегмент отката может расширяться или сжиматься. Сеанс должен ожидать пока все операции на сегменте отката не закончатся.
Время ожидания : 0.01 секунды
undo segment recovery
Процесс PMON откатывает мёртвую транзакцию. Ожидание продолжается, пока откат не закончится.
Время ожидания : 3 секунды
undo segment tx slot
Ожидание освобождения слота транзакции в пределах выбранного сегмента отката. Ожидание длится пока слот не будет доступен.
Время ожидания : 1 секунда
virtual circuit status
Сеанс ожидает виртуального канала, чтобы возвратить тип сообщения показывающий статус. Событие является устаревшим и заменено на событие virtual circuit wait.
Время ожидания : 1 секунда
type— указывает чего ожидает сеанс
virtual circuit wait
Сеанс ожидает завершения операции виртуального канала.
Время ожидания : 30 секунд
type— указывает тип операции которую ожидает сеанс
WCR: replay client notify
Во время воспроизведения, Workload Replay Client всегда сохраняет открытое соединение с базой данных, чтобы обнаружить некоторые специальные ошибки. Сеанс будет находиться в ожидании, пока не произойдёт некоторое связанное с воспроизведением исключение.
Время ожидания : Ожидание пока не будет уведомление. Время каждые 30 секунд
2- ожидание завершения запуска воспроизведения или выдачи REPLAY.CANCEL().
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, на котором, на котором ожидает сеанс
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, на котором, на котором ожидает сеанс
WCR: replay paused
Когда пользователь ввыполняет команду DBMS_WORKLOAD_REPLAY.PAUSE_REPLAY, все сеансы которые осуществляют воспроизведение ожидают на этом событии, пока воспроизведение не возобновится.
WCR: Sync context busy
В режиме воспроизведения по умолчанию, фиксации синхронизируются тем же порядком как сбор нагрузки. Фиксации сериализируются с помощью Sync context. Воспроизводящий сеанс будет ожидать на этом событии, если попытается фиксировать изменения одновременно с другим воспроизводящим сеансом.
WMON goes to sleep
WMON является UNIX специфичным монитором ожиданий, который может использоваться, чтобы сократить количество системных вызовов, связанных с установкой таймеров для отправления или ожидания в Oracle. Должны быть установлены параметры инициализации, которые включают процесс WMON.
Время ожидания : зависит от следующего тайм-аута
write complete waits
Сеанс ожидает буфера, который будет записан. Запись вызывается нормальным старением или кросс- экземлярным вызовом.
Время ожидания : 1 секунда
writes stopped by instance recovery or database suspension
Сеанс блокируется, пока экземпляр, который запустил Instance Recovery, не закончится.
Время ожидания : 5 секунд
Sql net message from client что это
Стратегии и средства настройки
Следующий раздел отчета:
-> ordered by wait tine desc, waits desc
(idle events last) Avg
Total Wait Time (cs)
SQL*Net more data from dblin
control file parallel write
db file scattered read
db file sequential read
control file sequential read
SQL*Net message from dblink
refresh controlfile command
log file parallel write
SQL*Net more data to client
SQL*Net message to dblink
db file parallel write
LGWR wait for redo copy
SQL*Net message from client
virtual circuit status
SQL*Net more data from clien
SQL*Net message to client
показывает все ожидания событий клиентами, произошедшие за рассматриваемый период. Кроме информации, представленной в разделе Тор 5, показано среднее время ожидания в тысячных долях секунды, а также, сколько раз транзакция ожидала этого события. Это помогает найти существенные события. Обращаю ваше внимание, что в этом разделе множество событий надо игнорировать. Например, ожидание события SQL*Net message from client можно игнорировать в тех системах, где клиенту необходимо время на размышление. Это время, в течение которого клиент не обращался к базе данных с запросами (с другой стороны, если подобные ожидания происходят при загрузке данных, значит, клиент недостаточно быстро передает данные, и это уже проблема). В нашем случае, однако, это ожидание означает, что клиент был подключен, но не делал никаких запросов. В заголовке раздела сказано, что записи ожиданий событий, связанные с простоями, приведены в конце. Все события, начиная с SQL*Net message from client и ниже, связаны с простоями: процесс ждал, пока к нему обратятся. В большинстве случаев все эти ожидания можно игнорировать.
Background Wait Events for DB:
-> ordered by trait tine desc.
control file parallel write
control file sequential read
log file parallel write
db file parallel write
LGHR wait for redo copy
-> Note that resources reported for PL/SQL includes the resources used by all SQL statements called within the PL/SQL code. As individual SQL statements are also reported, it is possible and valid for the summed total % to exceed 100
Стратегии и средства настройки 585
Executions Gets per Exec % Total Hash Value
BEGIN sys.sync usera.do it; END;
485,161 1 485,161.0 38.3 1989876028
BEGIN statspack.snap(lO); END;
Physical Reads Executions Reads per Exec
BEGIN sys.sync users.do it; END;
BEGIN statspack.snap(lO); END;
Мой блог
вторник, 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 )
Ожидания, относящиеся к коду пользовательских приложений
(например, lock waits caused by row level locking or explicit lock commands)
Ожидания, относящиеся к ресурсам Real Application Cluster
(например, global cache resources such as ‘gc cr block busy’)
Concurrency
Ожидания внутреннего ресурса БД (например, latches)
Ожидание вызвано неадекватной конфигурацией БД или ресурсов экземпляра
(например, undersized log file sizes, shared pool size)
Ожидания бездействия, пустое ожидание (например, ‘SQL*Net message from client’)
Ожидания связанные с передачей сетевых сообщений
(например, ‘SQL*Net more data to dblink’)
Ожидания, которые не должны типично проявляться в системе
(например, ‘wait for EMON to spawn’)
Ожидания относящиеся к Resource Manager (например, ‘resmgr: become active’)
Ожидания ввода/вывода фоновых процессов
(например, DBWR wait for ‘db file parallel write’)
Ожидания ввода/вывода пользовательских процессов
(например, ‘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
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.
Разобраться за какую именно защёлку идёт конкуренция, какую защёлку чаще всего ждут.
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
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
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
Индицирует ожидание буфера в буферном кэше базы данных.
Это означает, что сеанс считывает этот буфер в кэш и/или модифицирует его.
Может также служить симптомом нехватки списков свободных участков таблиц,
поддерживающих множество параллельно выполняющихся операций INSERT.
db file parallel write
Индицирует ожидания, относящиеся к процессам DBWR. Может быть связан с
числом конфигурированных процессов DBWR или подчиненных процессов
ввода/вывода DBWR. Может также означать низкую или высокую конкуренцию
устройств.
db file scattered read
Индицирует ожидания, ассоциируемые со сканированием всей таблицы.
Может означать конкуренцию ввода/вывода или чрезмерное количество
операций ввода/вывода.
db file sequential read
Индицирует (наряду с другими вещами) ожидания, ассоциируемые
со сканированием индекса. Может означать конкуренцию ввода/вывода или
чрезмерное количество операций ввода/вывода.
db file single write
Индицирует ожидания, ассоциируемые с записью в заголовок во время
контрольной точки. Типично для среды со слишком большим числом файлов
данных.
Индицирует ожидания, ассоциируемые с разрешенным прямым
вводом/выводом. Обычно указывает на конкуренцию ввода/вывода за
устройства.
To же, что и выше. Относится к операциям чтения.
Индицирует ожидания, ассоциируемые с внутренним механизмом работы с
очередями для блокировок различных ресурсов и компонентов Oracle. Полный
список ситуаций, связанных с постановкой в очередь в Oracle, можно найти в
Приложении В к справочному руководству по Oracle.
free buffer inspected
Индицирует ожидания, ассоциируемые с процессом идентификации
свободного буфера в буферном кэше базы данных для переноса в него
данных.
Индицирует недостаток свободных буферов в буферном кэше базы данных.
Это может означать одно из двух: либо буферный кэш базы данных слишком
мал, либо «грязный список» (список модифицированных блоков кэша) не
переписывается на диск достаточно быстро. Если дело в этом,
сконфигурируйте большее количество процессов DBWR или подчиненных
процессов ввода/вывода, в зависимости от обстоятельств. Это событие
происходит, когда инспектирующее свободные буферы событие не находит ни
одного свободного буфера.
library cache load lock
Требуется для загрузки объектов в библиотечный кэш. Такое событие
ожидания может произойти, если имеет место значительное число
загрузок/перезагрузок (обычно подобное происходит вследствие либо
недостаточного многократного использования операторов SQL, либо из-за
неправильно выбранного размера области коллективного пула).
library cache lock
Индицирует ожидания, ассоциируемые с одновременным выполнением
нескольких процессов, обращающихся к библиотечному кэшу. Может означать
неправильный выбор размера области коллективного пула, так как эту
блокировку необходимо захватить для размещения объектов в библиотечном
кэше.
Индицирует ожидания, которые ассоциируются с одновременными
обращениями к библиотечному кэшу и могут происходить в тех случаях, когда
необходимо модифицировать или проверить конкретный объект в
библиотечном кэше.
Индицирует потенциальную проблему: LGWR не способен поддерживать
скорость записи серверными процессами в буфер журнала обновлений.
Обычно означает, что имеет место проблема с размером буфера журнала (он
слишком мал), или слишком медленно работает устройство (а), или имеется
конкуренция устройств, на которых размещаются работающие в онлайновом
режиме журналы обновлений.
log file parallel write
Индицирует ожидания, ассоциируемые с переписью записей протокола из
буфера журнала обновлений на диск. Обычно означает медленную работу
устройств (а) или наличие конкуренции на тех устройствах, где размещаются
работающие в онлайновом режиме журналы обновлений.
log file single write
Индицирует запись в блок заголовка журнальных файлов. Может означать
ожидания, возникающие во время выполнения контрольных точек.
(требуется архивирование)
Ожидание означает, что ARCH не работает синхронно с LGWR. Может
произойти из-за того, что онлайновые журналы обновлений слишком малы,
устройства медленны или высока конкуренция за устройства (обычно
возникающая вследствие размещения журнальных файлов на тех же
устройствах, что и файлы данных). Имеет смысл изучить возможность
создания нескольких процессов ARCH или подчиненных процессов
ввода/вывода, в зависимости от обстоятельств.
(незавершенная контрольная точка)
Индицирует ожидания, ассоциируемые с неверно заданными размерами
журнальных файлов (обычно слишком малыми).
Индицирует ожидания, ассоциируемые со сбрасыванием на диск буферов
журналов при выполнении операции фиксирования транзакции, Если
ожидания являются устойчивыми, это может означать конкуренцию устройств,
на которых размещены онлайновые файлы журналов обновлений и/или
медленную работу устройств.
SQL*Net more data from client/to client
Индицирует затраченное время в процессе взаимодействия
пользовательского и серверного процессов. В некоторых довольно редких
случаях указывает на проблемы при передаче по сети, но по большей части
может быть проигнорировано. Если приложение поддерживает конфигурацию
ARRAYSIZE (например, Oracle Forms, SQL*Plus, Рго*С и т. д.),
конфигурирование ARRAYSIZE на значение, превосходящее значение по
умолчанию, может потенциально уменьшить ожидания для этого события.
SQL*Net more data from dblink
Индицирует ожидание, ассоциируемое с распределенной обработкой
(выполнением SELECT из других баз данных). Это событие происходит, когда
онлайновые просмотры других баз данных выполняются через DBUNKS. Если
просматриваемые данные главным образом статические, их пересылка в
локальную (расположенную на этой же ЭВМ) таблицу и ее обновление по
мере необходимости могут дать существенное увеличение
производительности.
Индицирует ожидания, ассоциируемые с блокировкой транзакций операциями
отката.
undo segment extension
Индицирует динамическое выделение экстентов и расширение сегментов
отката. Это может означать нехватку (недостаточность) заданного числа
сегментов отката или слишком малое значение оптимального числа
MINEXTNTS для этих сегментов.
write complete waits
Индицирует ожидания, связанные с буферами, которые необходимо
переписать на диск. Такая запись может быть вызвана обычным старением
блоков из буферного кэша базы данных.
Более подробное описание событий ожидания:
События ожидания – это статистики, значения которых увеличиваются серверным процессом (потоком), что бы указать, что он должен был ожидать завершения события, перед тем как продолжить обработку. Увеличение количества и продолжительности событий ожиданий может свидетельствовать о возникающих проблемах производительности. Мониторинг событий ожидания является важной составной частью работы администратора баз данных.
Классы событий ожидания
Для облегчения мониторинга ожиданий, все события ожидания oracle разделены на классы. Следующий список описывает каждый из этих классов:
Other – ожидания, которые обычно не должны происходить в системе (например, ‘wait for EMON to spawn’).
Scheduler – ожидания связанные с менеджером ресурсов (например, ‘resmgr: become active’).
System I/O – ожидания ввода-вывода фоновых процессов (например, ожидание DBWR ‘db file parallel write’).
User I/O – ожидания ввода-вывода пользовательских процессов (например, ‘db file sequential read’ ).
Параметры событий ожидания
Большинство событий ожидания имеют параметры, с помощью которых можно получить дополнительную информацию об ожидании. Некоторые из этих параметров специфичны для конкретного события ожидания, другие имеют общее предназначение. Ниже приведены наиболее часто встречающиеся общие параметры событий ожидания:
Номер ожидаемого блока относительно начала файла.
Если значение этого параметра равняется 0, был отправлен сброс клиенту. Ненулевое значение указывает, что было отправлено прерывание.
Класс блока описывает, как используется содержание блока. Например, класс 1 представляет блок данных, и класс 4 представляет заголовок сегмента.
Параметр представляет из себя адрес блока данных, который в свою очередь состоит из числа файла и номера блока.
Адрес функции отсоединения используемого в настоящий момент драйвера.
Номер файла базы данных.
Первый идентификатор (id1) очереди с ожиданием или глобальной блокировки принимает своё значение от P2 или P2RAW. Значение идентификатора зависит от имени (P1).
Второй идентификатор (id1) очереди с ожиданием или глобальной блокировки принимает своё значение от P3 или P3RAW. Значение идентификатора зависит от имени (P1).
Относительный индекс в V$GC_ELEMENT
Параметр обычно хранится в младших байтах P1 или P1RAW и указывает на режим запроса очереди или глобальной блокировки. Существуют следующие значения этого параметра:
Описание
1 Null mode
2 Sub-Share
3 Sub-Exclusive
4 Share
5 Share/Sub-Exclusive
6 Exclusive
Имя или тип блокировки с очередью или глобальной блокировки может быть определены по двум старшим байтам P1 или P1RAW. Имя определяется всегда двумя символами.
Идентификатор неактивного сеанса (SID).
Общая сумма времени, которую ожидал сеанс, прежде чем закончиться.
Описания событий ожидания
Ниже перечислены названия событий ожидания, их краткие описания, единицы измерения времени и параметры:
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
Сеанс ожидает закрытия внешнего большого объекта (LOB).
Время ожидания: общее время, прошедшее с начала вызова close
Параметры: session#, waited
Сеанс ожидает, чтобы проверить размер внешнего большого объекта (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
Сеанс ожидает открытия внешнего большого объекта (LOB).
Время ожидания: общее время, прошедшее с начала вызова isopen.
Параметры: session#, waited
Сеанс ожидает окончания чтения внешнего большого объекта (LOB).
Время ожидания: общее время, прошедшее до завершения read.
Параметры: session#, waited
broadcast mesg queue transition
Процессы входят в «wait for broadcast mesg queue transition», когда очистка дескриптора канала публикатора обращается к надёжному широковещательному каналу. Публикатор ответственен за перемещение сообщения в свободную очередь, но он не может это сделать, пока сообщение не находится в готовой очереди. Если сообщение всё ещё не находится в готовой очереди, то процесс ожидает при входе. Это ожидание события наиболее вероятно обнаружиться, когда процесс Oracle собирается нормально завершиться или когда PMON очищает мёртвый процесс. Переданное сообщение находится в очереди восстановления другого дескриптора канала (например, ch2).
Время ожидания: изменяется
broadcast mesg recovery queue transition
Процессы входят в «wait for broadcast mesg recovery queue transition», когда очистка дескриптора канала публикатора обращается к надёжному широковещательному каналу. Широковещательное сообщение находится в очереди восстановления другого дескриптора канала. Процесс ожидает при входе, если сообщение должно быть удалено из очереди восстановления другого дескриптора канала. Это ожидание события наиболее вероятно обнаружиться, когда процесс Oracle собирается нормально завершиться или когда PMON очищает мёртвый процесс. Переданное сообщение находится в очереди восстановления другого дескриптора канала (например, ch2).
Время ожидания: изменяется
Ожидание пока буфер не станет доступным. Событие происходит из-за того, что буфер читается в буферный кэш другим сеансом (и сеанс ожидает этого чтения), или буфер находится в буферном кэше в несовместимом режиме (то есть, другой сеанс изменяет этот буфер).
Время ожидания: Нормальное время ожидания составляет 1 секунду. Если сеанс уже ожидал буфер во время последнего ожидания, то следующее время ожидания будет 3 секунды.
Параметры: file#, block#
Oracle в действительности не ожидает на этом событии, приоритетный процесс возвращает CPU. Поэтому возможность отловить это событие крайне мала. Это не взаимная блокировка вызванная приложением, а лишь предполагаемая взаимная блокировка на уровне кэша. Она возникает, когда слой кэша не может получить буфер в определенном режиме в пределах определенного количества времени.
Время ожидания: 0 секунд. Приоритетный процесс только возвращает CPU, после чего обычно помещается в конец CPU очереди выполнения.
Параметры: class, mode, dba
buffer for checkpoint
Буфер не мог быть отмечен контрольной точкой, потому что некоторый процесс изменяет его. Это означает, что после ожидания, DBWR отсканирует буферный кэш снова. Данное событие могло произойти во время закрытия базы данных или после того, как пользователь сделал локальную контрольную точку. Во время этой ситуации не может быть закрыта база данных.
Время ожидания: 1 секунда.
Параметры: mode, dba
state – состояние указывает статус содержимого буфера
сhilddba – блок который сеанс пытается расщепить
instance state change
Сеанс ожидает процесс SMON чтобы включить или выключить кэш или восстановление транзакции. Такое обычно происходит во время команд ALTER DATABASE OPEN или CLOSE.
Время ожидания: Время ожидания зависит от количества времени, которое занимает действие (то есть, количество необходимого для восстановления)
waited- число секунд ожидания
Сеанс ожидает завершения ввода-вывода, или доступности подчинённого процесса, для передачи ему запроса ввода-вывода. Это событие имеется на платформах, которые не поддерживают асинхронный ввод-вывод.
Время ожидания: 50 миллисекунд
msg ptr – указатель на запрос ввода-вывода
Сеанс ожидает завершения операций фонового процесса (ов) LCK. Например:
Восстановление блокировки
Инициализация блокировок (запуск)
Завершение блокировок (завершение)
Время ожидания: 10 секунд
count – число закончившихся процессов LCK
loops – колличество ожиданий завершения операций процесса LCK
ksxr wait for mount shared
Межэкземплярное широковещательное средство экземпляра Oracle ожидает завершение монтирования базы данных в разделяемом режиме.
Время ожидания: время, потраченное на монтирование экземпляра. Если значение неопределенное, то, скорее всего, запуск экземпляра завис.
ktm: instance recovery
Сеанс ожидает процесс SMON, чтобы завершить экземпляр, восстановить транзакцию или очистить сегмент сортировки.
Время ожидания: время ожидания может измениться и зависит от объёма необходимого восстановления
select *
from v$rollstat
where usn = undo segment#;
Событие используется для определения того, должна ли быть защёлка очищена.
Время ожидания: от 0.05 сек. до 0.1 сек.
address – адрес проверяемой защёлки
number – номер активной защёлки. Для поиска дополнительной информации можно использовать следующий запрос:
select *
from v$latchname
where latch# = number;
Процесс ожидает защёлку, которая в настоящий момент захвачена другим процессом.
Время ожидания: Время ожидания увеличивается по экспоненте и не включает в себя повторение процесса получения защёлки (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)
lock address – адрес используемой блокировки загрузки. Это не защёлка (latch) или блокировка (enqueue), а объект состояния (State Object).
mode – указывает какие части данных объекта должны быть загружены
Событие управляет конкуренцией библиотечного кэша. Закрепление объекта вызывает загрузку «кучи» в память. Если клиент хочет изменить или просмотреть объект, он должен получить закрепление после блокировки.
Время ожидания: 3 секунды (1 секунда для PMON)
pin address – адрес используемой блокировки загрузки. Это не защёлка (latch) или блокировка (enqueue), а объект состояния (State Object).
mode – указывает какие части данных объекта должны быть загружены
library cache shutdown
Процесс, совершающий остановку экземпляра, ожидает окончания работы сеансов, перед тем как продолжить завершение работы библиотечного кэша.
LMON global data update
Операция прокручивающей миграции ожидает от процесса LMON подтверждения, что глобальные данные обновлены.
lock manager wait for remote message
Менеджер блокировок ожидает сообщение от удаленного менеджера блокировок в той же самой конфигурации.
Время ожидания: Прошедшее время ожидания
Используется при архивировании журнальных файлов (для основной и резервной базы данных). Когда процесс архивирования исчерпывает все свои буферы ввода-вывода, он будет ожидать свободного буфера.
Время ожидания: Зависит от скорости дисков
Ожидание пространства в журнальном буфере. Возникает из-за того, что сеанс пишет данные быстрее, чем фоновый процесс LGWR. Необходимо увеличить размер журнального буфера или переместить файлы журналов на более быстрые диски.
Время ожидания: Обычно 1 секунда, но если переключение журнала то 5 секунд
log file parallel write
Ожидание, возникающее при перезаписи журнальных записей из журнального буфера в файлы журнала.
files – количество записываемых файлов
blocks – количество блоков, которые будут записаны
requests- число запросов ввода-вывода
log file sequential read
Ожидание завершения чтения из файла журнала. Используется для чтения журнальных записей из файла журнала.
Время ожидания: Время завершения физического ввода-вывода (чтение).
log# – Относительный порядковый номер журнального файла в группе журнальных файлов (используется только при дампе журнального файла).
blocks – число читаемых блоков
log file single write
Ожидание завершения записи в файл журнала. Используется при обновлении заголовка файла журнала. Возникает при добавлении журнального файла в группу и увеличении порядкового номера (sequence number).
Время ожидания: Время завершения физического ввода-вывода (запись).
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 секунда
Когда пользовательский сеанс фиксирует изменения, журнальная информация должна быть сброшена в журнальный файл. Сеанс пользователя сигнализирует об этом процессу LGWR. Когда процесс LGWR закончит сброс информации из журнального буфера, он оповестит об этом сеанс пользователя.
Время ожидания: включает время затраченное на запись информации из журнального буфера и отправку сообщения.
buffer# – количество физических буферов в журнальном буфере, которые должны синхронизироваться.
Используется в качестве части оператора 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$.
Сеанс ожидает сообщение, которое будет получено по каналу, или истечение таймера канала.
Время ожидания: 5 секундное пробуждение (проверка) или таймер канала, установленный пользователем
handle address – указатель на объект библиотечного кэша для канала
buffer length – длина буфера
timeout – таймер канала установленный пользователем
Сеанс ожидает истечение таймера канала для отправки сообщения или выделения пространства в канале.
Время ожидания: 5 секундное пробуждение (проверка) или таймер канала, установленный пользователем
handle address – указатель на объект библиотечного кэша для канала
buffer length – длина записи или буфера, который был помещён в канал
timeout – таймер канала установленный пользователем
Событие вызывается через процедуру DBMS_LOCK.SLEEP. Наиболее вероятно произойдёт из процедур написанных пользователем.
Время ожидания: Время ожидания задаётся в сотых частях секунд и зависит от пользовательского контекста.
Это основное событие ожидания 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#) состояние которого должно быть очищено
Ожидание разделяемого сервера, диспетчера, или другого фонового процесса при старте.
Ожидание 1 секунда для фонового процесса при старте. Если время истекло, то повторное ожидание в течении 5 минут и далее в случае неудачи выдача ошибки. Если процесс запустился то событие подтвердит это.
process# –порядковый номер запускаемого процесса
waited –общее время ожидания старта процесса
Процесс ожидает сообщения во время параллельного выполнения.
Время ожидания зависит от того, как быстро сообщение приходит, и может измениться, но это это будет короткий период времени.
reason –причина извлечения из очереди
sleeptime –время бездействия (sleep) сеанса
loop –общее время бездействия (sleep) сеанса
У каждого процесса выполняющего параллельный запрос есть qref защёлка, которая должна быть получена прежде чем можно управлять очередью буферов.
Время ожидания: ожидание до 1 секунды
function – указывает тип ожидания
sleeptime –время ожидания сеанса (в сотых частях секунды)
qref –адрес процесса очереди, для которой сеанс, ожидает
PX server shutdown
Во время нормального или непосредственного (immediate) завершения работы подчинённые параллельные процессы оповещаются, чтобы они нормально очистились. Если какие-либо параллельные процессы все еще живы после 10 секунд, то они уничтожаются.
Время ожидания: ожидание до 0.5 секунды
nalive – число параллельных подчинённых процессов которые ещё работают
sleeptime –время бездействия начиная с момента ожидания сеанса
loop –сколько раз сеанс ожидал на этом событии
Это событие может произойти только в монопольном режиме. Координатор запросов сигнализирует подчинённым запросам (Query Slaves), что произошла ошибка.
Время ожидания: ожидание до 0.5 секунды
serial – порядковый номер подчинённого процесса очереди
error –происшедшая ошибка
nbusy –число занятых подчинённых процессов
Фоновые процессы (LGWR, DBWR, LMS0) используют это событие, чтобы указать, что они неактивны и ждут от приоритетных процессов IPC сообщения, для того что бы сделать некоторую работу.
Время ожидания: до 3 секунд. Параметр timeout показывает истинное значение простоя
rdbms ipc message block
Событие указывает, что все блоки сообщения используются, и что сеанс должен ожидать до тех пор, когда блок сообщения станет доступным.
Время ожидания: до 60 секунд
Событие используется для ожидания ответа от одного из фоновых процессов.
Время ожидания: определяется пользователем и показывается параметром timeout
from_process – фоновый процесс, которого ожидает сеанс. Ожидается ответ на сообщение IPC, отправленное этим сеансом.
timeout – время в секундах в течении которого процесс ожидает ответ
read by other session
Событие имеет место, когда сеанс запрашивает буфер, который в настоящий момент читается в буферный кэш другим сеансом. До релиза 10.1 это событие было сгруппировано с другими ожиданиями в событие ‘buffer busy wait’.
Время ожидания: буфера, который будет считан другим сеансом (в микросекундах)
Параметры: file#, block#, class#
Параллельный подчинённый или последовательный процесс восстановления ожидает завершения чтения блока данных.
Время ожидания: время необходимое чтобы завершить физический ввод-вывод (чтение)
resmgr: become active
Сеанс ожидает активный сессионный слот ресурсного менеджера. Событие имеет место, когда включается ресурсный менеджер и число активных сеансов в текущей потребительской группе превышает текущий ресурсный план. Для уменьшения этого ожидания необходимо увеличить лимит активных сеансов для текущей потребительской группы.
Время ожидания: время, затраченное на ожидание сеансом свободного слота активных сеансов
Параметры: location – местоположение ожидания
resmgr: cpu quantum
Сеанс ожидает выделения кванта времени процессора. Событие имеет место когда менеджер ресурсов включён и регулирует потребление процессрного времени. Чтобы уменьшить возникновение этого ожидания необходимо увеличить выделение лимита CPU для сеансов текущей потребительской группы.
Время ожидания: время, затраченное на ожидание сеансом кванта процессора
Параметры: location – местоположение ожидания
Сеанс ожидает в очереди параллельных операторов.
Время, затраченное на ожидание сеансом доступного количества процессов параллельного выполнения, что бы выполнить запрос с требуемой степенью параллелизма.
Параметры: location – местоположение ожидания
rolling migration: cluster quiesce
Экземпляры ожидают на этом событии, пока кластер стартует циклическую миграцию. Экземпляры ожидают завершения любых привелигерованных операций, которые блокируют выполнения циклической миграции.
Время ожидания: 1 секунда
location – Будет равно 1, если это ожидание завершения привилегированных операций, после которых стартует rolling upgrade/downgrade. Будет равно 2, если это ожидание завершения rolling upgrade/downgrade на всех нодах кластера.
waits – Число секунд ожидания в текущем местоположении.
Сеанс пытается получить блокировку словаря данных.
Время ожидания: до 60 секунд
cache id – столбец CACHE# в представлении V$ROWCACHE
request – таймер канала установленный пользователем
RVWR wait for flashback copy
Ожидание конца работы процесса RVWR копирующего ретроспективные данные в flashback буфер, что бы затем записать запрошенные ретроспективные данные.
Время ожидания: 10 миллисекунд
Эта функция вызывается, когда Oracle должен обнаружить размер и число буферов ввода-вывода, выделенных на уровне SBT. Ожидание быстрое и никогда не блокируется.
Время ожидания: меньше чем одна миллисекунда
Эта функция получает один буфер ввода-вывода, который Oracle будет использовать для ввода-вывода во время резервного задания.
Время ожидания: меньше чем одна миллисекунда
Время ожидания: меньше чем одна миллисекунда
Эта функция освобождает буфер ввода-вывода, который уже был обработан во время выполнения задания восстановления, для того чтобы уровень SBT мог заполнить его данными.
Время ожидания: меньше чем одна миллисекунда
Вызывается сеансом, что бы найти самый высокий режим блокировки установленный на ресурсе.
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 миллисекунд
Выполняя единственную задачу, это событие указывает, что сеанс ожидает клиентскую сторону выполняемой программы.
Время ожидания: общее время затраченное сеансом в приложении
shared server idle wait
Событие ожидания простоя разделяемого сервера. Сервер ожидает в общей очереди виртуального канала.
Время ожидания: 30 секунд
Основное событие простоя для 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
wait time – намеченное время ожидания
switch logfile command
Сеанс ожидает завершения команды SWITCH LOGFILE.
Время ожидания: 5 секунд
Сеанс ожидает внешнего хоста для предоставления запрашиваемых данных через сетевой сокет. Большое время ожидания этого события ещё указывает на возникновение проблемы. Приложение, которое взаимодействует с удалённым хостом, должно ожидать, пока данные, которые оно считает, не прибыли. Кроме того, в Microsoft Windows, отдельный поток отслеживает прибытие трафика. Этот поток тратит большую часть своей жизни в ожидании отслеживания события ожидания TCP Socket (KGAS).
Время ожидания: общее время для установления сетевого соединения или прихода данных из сети
P0 – только для внутреннего пользования Oracle. Значения 8, 9, и 10 могут возникнуть только в рамках специального потока Microsoft Windows; в нормальных сеансах значения параметра другие.
P1 – только для внутреннего пользования Oracle.
Сеанс ожидает завершения асинхронного ввода-вывода процесса ARCH.
Время ожидания: 0.01 секунда
Ожидание отката блокирующей транзакции.
Время ожидания: 1 секунда
count – сколько раз сеанс ожидал на этой транзакции
Сеанс ожидает, что бы увидеть, есть ли какие-либо запущенные транзакции, которые не связаны с сегментами отката.
Время ожидания: 1 секунда
undo_retention publish retry
Это ожидание может произойти по двум причинам. Сеанс, выполняющий ALTER SYSTEM SET UNDO_RETENTION, может ожидать пока идёт кластерная реконфигурация. Или фоновый процесс MMNL может ожидать кластерного реконфигурирования, пытаясь определить максимальное значение UNDO_RETENTION.
Время ожидания: 1 секунда
P2 – количество повторений (максимальное кол-во 5)
undo segment extension
Сегмент отката может расширяться или сжиматься. Сеанс должен ожидать пока все операции на сегменте отката не закончатся.
Время ожидания: 0.01 секунды
undo segment recovery
Процесс PMON откатывает мёртвую транзакцию. Ожидание продолжается, пока откат не закончится.
Время ожидания: 3 секунды
undo segment tx slot
Ожидание освобождения слота транзакции в пределах выбранного сегмента отката. Ожидание длится пока слот не будет доступен.
Время ожидания: 1 секунда
virtual circuit status
Сеанс ожидает виртуального канала, чтобы возвратить тип сообщения показывающий статус. Событие является устаревшим и заменено на событие virtual circuit wait.
Время ожидания: 1 секунда
type- указывает чего ожидает сеанс
virtual circuit wait
Сеанс ожидает завершения операции виртуального канала.
Время ожидания: 30 секунд
type- указывает тип операции которую ожидает сеанс
WCR: replay client notify
Во время воспроизведения, Workload Replay Client всегда сохраняет открытое соединение с базой данных, чтобы обнаружить некоторые специальные ошибки. Сеанс будет находиться в ожидании, пока не произойдёт некоторое связанное с воспроизведением исключение.
Время ожидания: Ожидание пока не будет уведомление. Время каждые 30 секунд
2- ожидание завершения запуска воспроизведения или выдачи REPLAY.CANCEL().
Сеанс будет ожидать на этом событии во время воспроизведения, если у него будут логические зависимости от другого сеанса, который еще не произвёл фиксацию изменений.
Зависит от количества конкурирующих блокировок строк в исходном сборе нагрузки.
wait for scn’s hi 4 bytes – старшие 4 байта из 8 байтового replay SCN, на котором, на котором ожидает сеанс
wait for scn’s lo 4 bytes – младшие 4 байта из 8 байтового replay SCN, на котором, на котором ожидает сеанс
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, на котором, на котором ожидает сеанс
Когда пользователь ввыполняет команду DBMS_WORKLOAD_REPLAY.PAUSE_REPLAY, все сеансы которые осуществляют воспроизведение ожидают на этом событии, пока воспроизведение не возобновится.
WCR: Sync context busy
В режиме воспроизведения по умолчанию, фиксации синхронизируются тем же порядком как сбор нагрузки. Фиксации сериализируются с помощью Sync context. Воспроизводящий сеанс будет ожидать на этом событии, если попытается фиксировать изменения одновременно с другим воспроизводящим сеансом.
WMON goes to sleep
WMON является UNIX специфичным монитором ожиданий, который может использоваться, чтобы сократить количество системных вызовов, связанных с установкой таймеров для отправления или ожидания в Oracle. Должны быть установлены параметры инициализации, которые включают процесс WMON.
Время ожидания: зависит от следующего тайм-аута
write complete waits
Сеанс ожидает буфера, который будет записан. Запись вызывается нормальным старением или кросс- экземлярным вызовом.
Время ожидания: 1 секунда
writes stopped by instance recovery or database suspension
Сеанс блокируется, пока экземпляр, который запустил Instance Recovery, не закончится.
Время ожидания: 5 секунд

