![]() |
|
Программирование >> Oracle
Стратегии и средства настройки 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, я обнаружил:
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |