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

Для просмотра значений этих статистик используются системные динамические представления V$SESSTAT и V$SYSSTAT. В данном материале описываются статистики отображаемые в этих представлениях.  Формат вывода описания: название, краткое описание, строка дополнительной информации. Последняя включает в себя: класс статистики, значение параметра TIMED_S (если есть значение), начальная и конечная версия релиза Oracle в котором действует статистика (если есть значение).

Поле «Класс» отображаемое в представлениях V$SESSTAT и V$SYSSTAT содержит число, представляющее один или более классов статистик.

Существуют следующие классы статистик:

  • 1, User
  • 2, Redo
  • 4, Enqueue
  • 8, Cache
  • 16, OS
  • 32, Real Application Clusters
  • 64, SQL
  • 128, Debug 

Статистики могут принадлежать нескольким классам. Например, статистика buffer is not pinned count имеет в столбце число 72 = 64 + 8, то есть принадлежит к классам SQL и Cаche (операторам SQL и кэшированию). В приведённых описаниях статистик, в строке дополнительной информации, цифровое значение поля «Класс» не указывается. Вместо этого будут перечислены названия классов, в которые входит статистика.

background checkpoints completed

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

Класс: Cache

background checkpoints started

Число контрольных точек начатых фоновыми процессами. Значение может быть больше чем "background checkpoints completed", если новые контрольные точки перекрывают незавершённые контрольные точки или если текущая контрольная точка выполняется в текущее время. Значение включает только контрольные точки журнального потока.

Оно не включает в себя:

  • Контрольные точки отдельных  файлов, выполняемые для таких  операций, как например перевод файла в offline или начало резервного копирования
  • Приоритетные (по запросам пользователей) контрольные точки (например, при выполнении оператора  ALTER SYSTEM CHECKPOINT LOCAL)

Класс: Cache

background timeouts

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

Класс: Debug

branch node splits

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

Класс: Debug 

buffer is not pinned count

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

Классы: SQL, Cache    

buffer is pinned count

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

Классы: SQL, Cache    

bytes received via SQL*Net from client

Общее число байтов полученных от клиента по Oracle Net Services

Класс: User    

bytes received via SQL*Net from dblink

Общее число байтов полученных через связь базы данных по Oracle Net Services

Класс: User   

bytes sent via SQL*Net to client

Общее количество байтов, отправленных клиенту от фоновых процессов

Класс: User   

bytes sent via SQL*Net to dblink

Общее количество байтов, переданных через связь базы данных

Класс: User   

Cached Commit SCN referenced

Полезно только для внутренних целей отладки

Класс: Debug

calls to get snapshot scn: kcmgss

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

Класс: Real Application Clusters

calls to kcmgas

Число вызовов подпрограммы kcmgas, для получения нового SCN

Класс: Debug

calls to kcmgcs

Число вызовов подпрограммы kcmgcs для получения текущего SCN

Класс: Debug

calls to kcmgrs

Число вызовов подпрограммы kcsgrs для получения последнего SCN

Класс: Debug

change write time

Общее время записи (в 10 долях миллисекунды) журнальной информации для изменений произведённых в блоках CURRENT  

Класс: Cache | TIMED_S = 3

cleanouts and rollbacks - consistent read gets

Число целостных чтений, которые требуют как откат, так и  очистку блока.

Класс: Debug

cleanouts only - consistent read gets

Число целостных чтений, которые требуют только очистку блока.

Класс: Debug

cluster key scan block gets

Число блоков полученных при кластерном сканировании

Класс: SQL

cluster key scans

Число начатых кластерных сканирований

Класс: SQL

cold recycle reads

Число буферов, которые были считаны с конца рециклирующего кэша со стратегией fast aging

Класс: Cache

commit cleanout failures: block lost

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

Класс: Cache

commit cleanout failures: buffer being written

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

Класс: Cache

commit cleanout failures: callback failure

Сколько раз функция во время очистки при фиксации возвращала значение FALSE

Класс: Cache

commit cleanout failures: cannot pin

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

Класс: Cache

commit cleanout failures: hot backup in progress

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

Класс: Cache

commit cleanout failures: write disabled

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

Класс: Cache

commit cleanouts

Общее количество выполненных функций очистки блоков при фиксации

Класс: Cache

commit cleanouts successfully completed

Количество успешно выполненных функций очистки блоков при фиксации

Класс: Cache

Commit SCN cached

Сколько раз системные изменения кэшировались при операциях фиксации.

Класс: Debug 

consistent changes

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

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

Класс: Cache

consistent gets

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

Класс: Cache

consistent gets direct

Сколько раз запрашивалось целостное чтение для блока минуя буферный кэш (например, операция прямой загрузки). Эта статистика является частью статистики consistent gets.

Класс: Cache

consistent gets from cache

Сколько раз запрашивалось целостное чтение для блока буферного кэша. Эта статистика является частью статистики consistent gets.

Класс: Cache

CPU used by this session

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

Класс: User | TIMED_S = 3

CPU used when call started

Используемое процессорное время на момент начала вызова.

Класс: Debug | TIMED_S = 3

CR blocks created

Число CURRENT блоков, клонированных, что бы создать CR (consistent read) блоки. Наиболее распространенная причина клонирования состоит в том, что буфер сохранен в несоответствующем режиме.

Класс: Cache

current blocks converted for CR

Число CURRENT блоков преобразованных в состояние CR (целостного чтения).

Класс: Cache

cursor authentications

Число проверок привилегий, проведённых во время выполнения операции.

Класс: Debug 

data blocks consistent reads - undo records applied

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

Класс: Debug 

db block changes

Тесно связана со статистикой "consistent changes". Общее количество изменений, которые были сделаны во всех блоках SGA во время операций обновления или удаления. Такие изменения генерируют журнальные записи и следовательно становятся постоянными изменениями в базе данных, если транзакция фиксируется. Статистика характеризует общую нагрузку на базу данных. Она указывает на частоту с которой буферы становятся «грязными» (например на транзакцию или на секунду).

Класс: Cache

db block gets

Сколько раз запрашивался блок в CURRENT режиме

Класс: Cache

db block gets direct

Сколько раз запрашивался блок в CURRENT режиме минуя буфферный кэш (например во время прямой загрузки ). Эта статистика является частью статистики db block gets.

Класс: Cache

db block gets from cache

Сколько раз запрашивался блок в CURRENT режиме из буфферного кэша. Эта статистика является частью статистики db block gets

Класс: Cache

DBWR buffers scanned

Общее число «грязных» и чистых буферов, которые Oracle просматривает во время сканирования списка LRU при очистке «грязных» блоков. Если разделить это значение на статистику «DBWR lru scans» то можно получить среднее число просмотренных буферов.

Класс: Cache

DBWR checkpoint buffers written

Число буферов, которые были записаны для контрольных точек

Класс: Cache

DBWR checkpoints

Количество обращений к DBWR о необходимости просмотреть кэш и записать все блоки, отмеченные для контрольной точки или для завершения восстановления.  Эта статистика всегда больше чем  "background checkpoints completed".

Класс: Cache

DBWR cross instance writes

Только для Real Application Clusters: число блоков, записанных, чтобы удовлетворить запрос блокировки от другого экземпляра.

Классы:  Real Application Clusters, Cache

DBWR free buffers found

Число свободных буферов, которые нашёл DBWR при запросах очистки буферов. Разделив это значение на  "DBWR make free requests" можно получить среднее число повторно используемых буферов в конце каждого списка LRU.

Класс: Cache

DBWR lru scans

Сколько раз DBWR сканировал список LRU при поиске буферов для записи. В это количество включаются сканирования, выполненные при заполнении записываемых пакетов для других целей (например, контрольная точка).   Эта статистика всегда больше чем  "DBWR make free requests".

Класс: Cache

DBWR make free requests

Количество запросов к DBWR на очистку буферов для списка LRU

Класс: Cache

DBWR revisited being-written buffer

Количество раз, когда DBWR пытался сохранить буфер для того, чтобы записать его, но находил, что буфер уже был в пакете записи.  Эта статистика отображает объём «бесполезной» работы, которую DBWR должен сделать при попытке заполнить пакет.

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

Класс: Cache

DBWR summed scan depth

Текущая глубина просмотра (число буферов проверенных DBWR) добавляется к этой статистике каждый раз, когда DBWR просматривает список LRU для поиска «грязных» буферов. Разделив это значение на "DBWR lru scans" можно получить среднюю глубину сканирования.

Класс: Cache

DBWR transaction table writes

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

Класс: Cache

DBWR undo block writes

Количество блоков сегмента отката, записанных DBWR

Класс: Cache

DDL statements parallelized

Число параллельно выполняемых операторов DDL

Класс:  Real Application Clusters

deferred (CURRENT) block cleanout applications

Сколько раз записи для очистки были отложены. Когда DML оператор пытается изменить блок, а все свободные IDL показывают недавнюю очистку при фиксации, процесс очищает блок (в это время статистика увеличивается) и использует слот IDL с наименьшим SCN. Есть и другие частные случаи.

Класс: Debug 

DFO trees parallelized

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

Класс:  Real Application Clusters

dirty buffers inspected

Число «грязных» буферов найденных пользовательским процессом при поиске буфера для повторного использования.

Класс: Cache

DML statements parallelized

Число операторов DML выполняемых параллельно

Класс:  Real Application Clusters

enqueue conversions

Общее число преобразований состояния блокировки таблицы или блокировки строки

Класс:  Enqueue

enqueue deadlocks

Общее количество взаимных блокировок

Класс:  Enqueue

enqueue releases

Общее количество освобождённых блокировок строки или таблицы

Класс:  Enqueue

enqueue requests

Общее количество приобретённых блокировок строки или таблицы

Класс:  Enqueue

enqueue timeouts

Общее количество блокировок строки или таблицы (приобретённых или изменённых), с истекшим сроком действия до их завершения.

Класс:  Enqueue

enqueue waits

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

Класс:  Enqueue

exchange deadlocks

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

Класс: Cache

execute count

Общее количество вызовов (пользовательcких и рекурсивных), которые выполнили SQL-операторы.

Класс: SQL

flash cache eviction: aged out

Сколько раз буфер был вытеснен из Flash кэша в связи с тем, что он устарел.

Класс: Cache

flash cache eviction: buffer pinned

Сколько раз буфер Flash кэша становился недействителен из-за повторного использования объекта или области (и т.д.). Буфер Flash кэша использовался во время замещения.

Класс: Cache

flash cache eviction: invalidated

Сколько раз буфер Flash кэша становился недействителен из-за повторного использования объекта или области (и т.д.). Буфер Flash кэша не использовался во время замещения.

Класс: Cache

flash cache insert skip: corrupt

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

Класс: Cache

flash cache insert skip: DBWR overloaded

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

Класс: Cache

flash cache insert skip: exists

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

Класс: Cache

flash cache insert skip: modification

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

Класс: Cache

flash cache insert skip: not current

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

Класс: Cache

flash cache insert skip: not useful

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

Класс: Cache

flash cache inserts

Общее число буферов памяти вставленных во флэш кэш.

Класс: Cache

flashback log write bytes

Общий размер данных Flashback (в байтах), записанных процессом  RVWR в журнал Flashback.

Класс: Redo

flashback log writes

Общее количество записей процесса RVWR в журнал Flashback.

Класс: Redo

free buffer inspected

Количество буферов пропущенных с конца очереди LRU, для того что бы найти повторно используемый буфер. Разница  между значениями этой статистики и "dirty buffers inspected" равна количеству буферов, которые не могут быть использованы, потому что имеют пользователя,  ожидают, читаются или пишутся, были заняты  или нуждались в записи после быстрого устаревания.

Класс: Cache

free buffer requested

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

Класс: Cache

global cache blocks corrupt

Только для Real Application Clusters. Количество повреждённых блоков или блоков с несовпадением контрольной суммы, встретившихся во время соединения между кластерами.

Класс: Cache, Real Application Clusters

global cache convert time

Только для Real Application Clusters. Общее время, потраченное на преобразование блокировок.

Класс: Cache, Real Application Clusters

global cache convert timeouts

Сколько раз преобразование блокировок в глобальном кэше заканчивалось тайм-аутом.

Класс: Cache, Real Application Clusters

global cache converts

Число преобразований блокировок в глобальном кэше.

Класс: Cache, Real Application Clusters

global cache cr block log flushes

Количество сбросов в журнал блоков согласованного чтения.

Класс: Cache, Real Application Clusters