Программирование >>  Oracle 

1 ... 185 186 187 [ 188 ] 189 190 191 ... 469


Стратегии и средства настройки 595

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

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

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

Представления V$

В этом разделе я хочу рассмотреть основные представления V$, необходимые при настройке приложений. Этих представлений - более 180, и хотя все они называются представления динамической производительности , не все они связаны с производительностью. Мы рассмотрим те, которые я использую постоянно. Есть и другие представления, используемые, например, для контроля и настройки многопоточного сервера; я их описывать не буду. Все эти представления детально описаны в руководстве Orade8i Reference. Я не собираюсь воспроизводить эти описания, хочу лишь обратить внимание на те представления, о которых обязательно надо знать.

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

Представление V$EVENT NAME

В этой главе неоднократно упоминались многие события. Было показано, что событие имеет имя и до трех параметров: p1, р2 и рЗ. Если необходимо узнать интерпрета-



Глава 10

цию параметров pi, р2 и рЗ для события, можно обратиться к документации либо выполнить запрос к представлению V$EVENT NAME. Например, в этой главе рассматривались события latch free и enqueue. Выполнив запросы к этому представлению:

tkyte@TKYTE816> select * from v$event name where name = latch free 2 /

EVENT# NAME PARAMETER1 PARAMIETER2 PARAMETER3

2 latch free address number tries

tkyte@TKYTE816> select * from v$event name where name = enqueue 2 /

EVENT* NAME PARAMETER1 PARAMETER2 PARAMETER3

11 enqueue namelmode idl id2

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

Представления V$FILESTAT и V$TEMPSTAT

Представления V$FILESTAT и V$TEMPSTAT позволяют быстро оценить объем ввода/вывода в системе, а также количество времени, потраченное сервером Oracle на чтение и запись любого файла. Оценку этих параметров можно получить с помощью средств пакета StatsPack либо сравнив значения в этих представлениях через определенный период времени.

Представление V$LOCK

Это представление я уже несколько раз использовал в главе 3. Оно позволяет понять, кто и кого блокирует. Помните, сервер Oracle не хранит блокировки уровня строк отдельно отданных, так что не ищите их в этом представлении. В нем можно обнаружить, кто установил блокировки ТМ (DML Enqueue) на таблицы; поэтому можно понять, что сеанс х,у заблокировал некоторые строки в таблице, но нельзя понять какие именно.

Представление V$MYSTAT

Это представление содержит статистическую информацию только о запрашивающем сеансе. Схема, обращающаяся к этому представлению, должна иметь непосредственный доступ к базовым объектам V $STATNAME и V $MYSTAT, например:

sys@TKYTE816> grant select on v $statname to tkyte; Grant succeeded.

sys@TKYTE816> grant select on v $mystat to tkyte; Grant succeeded.

Обратите внимание, что использовано имя V $STATNAME, а не V$STATNAME. Дело в том, что V$STATNAME - это всего лишь общедоступный синоним для представления V $STATNAME.



Стратегии и средства настройки 597

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

ops$tkyte@ORA8I.WORLD> create view my stats

2 as

3 select a.name, b.value

4 from v$statname a, v$mystat b

5 where a.statistic# = b.statistic#

view created.

ops$tkyte@ORA8I.WORLD> SELECT * FROM MY STATS WHERE VALUE > 0;

NAME VALUE

logons cumulative 1

logons current 1

opened cursors cumulative 160

opened cursors current 1

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

ops$tkyte@ORA8I.WORLD> select round(100 *

2 (1-max(decode(name,parse count (hard),value,null))/

3 max(decode(name,parse count (total),value,null))), 2

4 ) Soft Parse Ratio

5 from my stats

Soft Parse Ratio

84.03

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

Представление V$OPEN CURSOR

Это представление содержит список открытых курсоров для всех сеансов. Это очень полезно для выявления утечек курсоров и определения, какие именно операторы SQL выполняются сеансом. Сервер Oracle оставляет курсоры в кэше даже после их явного закрытия, так что не удивляйтесь, если обнаружите в результатах закрытые курсоры (это вполне возможно). Например, в том же сеансе SQL*Plus, в котором выше вычислялся коэффициент Soft Parse Ratio, я обнаружил:



1 ... 185 186 187 [ 188 ] 189 190 191 ... 469

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика