сточники диагностических данных в Oracle
Имеются по меньшей мере три различных способа получения данных о времени выполнения операций в Oracle:
SQL-запросы к фиксированным представлениям Oracle (фиксированные представления содержат в именах префиксы V$, GV$ или X$).
Прямой опрос сегментов разделяемой памяти Oracle, дающий ту же информацию, что и представления V$ (т. е. доступ к данным представлений V$ без привлечения механизма запросов SQL).
Активирование в Oracle функции расширенной трассировки SQL, сохраняющей в трассировочном файле все хронометрические сведения о ходе выполнения команд для сессии Oracle.
На первый взгляд, данные представлений V$ имеют мало общего с данными файла трассировки SQL, но на самом деле это разные формы представления одной и той же информации. Об общем источнике исходных данных рассказывается в главе 7.
Посвятив полных три года изучению метода R и его требований к данным, я пришел к выводу о наличии у перечисленных трех способов следующих достоинств:
Запросы SQL к представлениям V$
SQL-запросы к представлениям V$ - превосходный источник данных о потреблении ресурсов (т. е. о количестве обращений к различным ресурсам). Дополнительную информацию можно почерпнуть из примеров Тома Кайта (Tom Kyte), доступных по адресу http://asktom.or-acle.com/~tkyte/runstats.html. Представления V$ особенно полезны на этапе разработки приложений. Доступ к хронометрическим данным из представлений V$ при помощи SQL - это относительно простой способ начать работу с этими данными. Однако по ряду причин, изложенных в главе 8, хронометрические данные из этого источника оказываются ненадежными при решении проблем некоторых типов. Возможности, предоставляемые хронометрическими данными из фиксированных представлений, намного скромнее, чем в случае применения двух других подходов.
Одно из фиксированных представлений, X$TRACE, предоставляет средство доступа при помощи SQL к данным расширенной трассировки SQL. Однако эта возможность в настоящее время не документирована, не поддерживается и работает нестабильно. Если в будущем корпорация Oracle усовершенствует реализацию X$TRACE, мой пессимистический взгляд на возможность получения детальных данных из фиксированных представлений может потерять актуальность. Но в Oracle 9.2 данная возможность не готова к промышленному использованию.
Получение данных V$ непосредственно из разделяемой памяти Oracle
Если у вас уже есть инструмент, позволяющий получать диагностические данные в заданных временной области и области операций, то выборка данных с высокой частотой непосредственно из разделяемой памяти, возможно, будет для вас наилучшим выбором. Высокочастотная выборка позволяет получить данные, весьма полезные в решении разнообразных проблем производительности. Однако доступ к разделяемой памяти и последующее хранение гигантских массивов данных требуют или больших трудозатрат, или расходов на специальный инструментарий. Такие инструменты недешевы.
Использование возможностей расширенной трассировки SQL
Расширенная трассировка SQL также способна предоставить данные для надежной диагностики, не требуя при этом тех трудовых или финансовых ресурсов, которые характерны для способа с опросом памяти. Принципиальный недостаток расширенной трассировки в том, что она позволяет получить диагностические данные только для тех операций, о которых заранее известно, что они выполняются в неоптимальных условиях. Возможно, вам придется набраться терпения, если проблема производительности проявляется лишь время от времени. Проведя опрос, можно собирать диагностические данные в любой области для любой выполнявшейся пользовательской операции, но только при том условии, что в хранение первичных данных были вложены достаточные средства. Расширенная трассировка - эффективная и недорогая альтернатива высокочастотного опроса.
В табл. 3.5 для удобства восприятия сделана попытка дать количественное представление вышеизложенных соображений.
Этот способ создания иллюзии, что арифметика позволяет манипулировать мнением читателей, позаимствован мной из журнала Car & Driver.
Я уверен, что расширенная трассировка SQL - лучший из описанных в этой главе трех источников данных для целей оптимизации производительности. За последние три года мы с коллегами из hotsos.com более тысячи раз помогали диагностировать и решать проблемы производительности, пользуясь только данными расширенной трассировки SQL. Наш практический опыт показывает, что при надлежащем применении расширенная трассировка представляет собой исключительно надежный инструмент диагностики.
< Предыдущая | Следующая > |
---|