DeepEdit!

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

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Чему можно научиться из представления V$SYSTEM_EVENT?


Чтобы получить самое полное представление о том, что именно мешает на­страиваемой системе показать оптимальную производительность, нужно по­ближе познакомиться с динамическим представлением производительности Это представление предлагает взгляд с высоты птичьего по­лета на все события в системе Oracle. И хотя в V$SYSTEM_EVENT нет специфи­ческой информации уровня сеанса (текущей или из прошлых прогонов), в нем
суммируются все ожидания, начиная с момента последнего запуска экземпляра.
Имеющаяся в этом динамическом представлении статистика обнуляется при каждом запуске экземпляра. По этой причине информацию из этого и всех дру­гих представлений V$ необходимо выбирать через какие-то интервалы времени.
•  Столбцы     динамического     представления     производительности V$SYSTEM_EVENT содержат следующую информацию:
•        Event  Имя события. Наиболее типичными событиями являются ожидание постановки в очередь, ожидание типа "буфер занят", ожидание "защелка свободна", ожидание прямого чтения из файла БД, ожидание последовательного чтения из файла БД и ожидание типа
"буфер свободен".
Total_Waits Общем число ожиданий названного выше события с момента запуска экземпляра.
Total_Timeouts   Общее число        для указанного выше события с момента запуска экземпляра.
'•   Time_Waited   Общее время ожидания (в сотых долях секунды, эта
единица также известна под именем        данного события для
всех сеансов, имевших место после последнего запуска экземпляра.
•        Average ...Wait   Среднее время ожидания (в сотых долях секунды) данного события для всех сеансов, имевших место после последнего запуска экземпляра. AverageWait = (time_waited/total_waits).
Приведенный ниже скрипт поможет при определении дельты текущих ожида-
ний внутри временного интервала        каждого из ожидаемых событий в
системе (другими словами, приращение измеряемой величины. — 

Прим. пер.):

С!        table BEGIN .SYS.EVENT;
drop table END_SYS_EVENT; /* Create Begin Table at Time T1  »/ create table BEGIN_SYS_EVENT as select * from V$SYSTEM EVENT; /* Wait n seconds or n minutes */ /* Create End Table at Time T2 */ .create table END_SYS_EVENT as
select * from V$SYSTEM_EVENT; /* View delta numbers for wait events between Begin (T1) and End (T2) */ select T1. Event,  (T2.Total_Waits-T1.Total.Waits) "Delta Waits",
(T2.Total_Timeouts-T1.Total_Timeouts) "Delta Timeouts",
(T2.Time Jtaited-T1.Time Jtfaited) "Delta Тшз Waited",
(T2.Average_Wait-T1.Average_Wait) "Delta Average Wait"
from BEGIN_SYS_EVENT-T1, END_SYS_EVENT T2 where T1.Event = 

12. 

Event;
После просмотра этой информации легко выбрать представляющие интерес области. Посмотрите на элементы с самыми большими временами ожидания и попытайтесь распределить их по категориям. Может быть, это ориентирован­ные на ввод/вывод события, вроде выборочного чтения файла БД, последова­тельного чтения файла БД или ожидания свободного буфера? Или же это привязанные к памяти события типа ожидания "буфер занят"? Теперь перейдем к системным ресурсам, нуждающимся в увеличении. Но прежде чем приступить к изменению параметров системы, нужно ознакомиться с дополнительными представлениями V$.
Рассмотрим V$SESSION_EVENT
Представление V$SESSION_EVENT предлагает ту же информацию, что и V$SYSTEM_EVENT, но на уровне сеанса. Конечно, в нем содержатся сведения о сеансе, например SID. Если использовать их для соединения с V$SESSION, мож­но увидеть, как работают индивидуальные сеансы. Искать в
те же самые события, которые были признаны проблемными на системном
уровне, — это хорошая идея. Иногда удается обнаружить, что многие события системного уровня можно свести всего к одному или нескольким сеансам, в рам­ках которых выполняются одни и те же или аналогичные работы. Вот пример простого запроса для погружения на уровень сеансов:
Select S. User-name.  Program.  Si:,H::s.
SE.Event, SE.Total_Waits, SE.Total_Timeouts, SE.Time_Waited, SE.Average_Wait
from V$SESSION S, V$SESSION_EV£NT SE where S.Sid = 8t Sjcand SE. Event not like -SOUNetSS' and 3.Status = 'active' and S.Username is not null;

Замечание
Из результатов предыдущего запроса исключена информация, у которой имя пользователя в V$SESSION содержит значение NULL. Если мы хотим увидеть, какие события связаны с такими фоновыми процессами, как PMON и SMON, эту строку следует удалить. После просмотра выходных данных V$SESSION_EVENT и сравнения результатов с V$SYSTEM_EVENT нам может понадобиться погрузиться еще глубже.

Ниже приведен образец форматированных выходных данных предыдущего
запроса без столбцов Program Name и TimeOuts:
□ USERNAME     STATUS      EVENT        TOTAL_WAITS    TIME_WAITED   AVERAGE_WAIT
UREG        ACTIVE      db file scattered read   15        10        ,66666667
AREG        ACTIVE      latch free        12        27        ,44444444
 


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







jAntivirus