Что такое - файл расширенной трассировки SQL Oracle ?
Файл расширенной трассировки SQL Oracle – файл, содержащий последовательно записанные действия ядра БД, вызванные запросами к ней. Это файл формируется после установки для сессии псевдо-события 10046.
Что такое — время отклика сессии ?
Время отклика сессии - отрезок времени между началом отправки пользователем запроса или запросов к БД, и получением им результатов работы запросов. Таким образом временем отклика можно считать время между нажатием кнопки «Сформировать отчет» и появлением отчета на экране.
Что такое - профиль ресурсов сессии ?
Профиль ресурсов сессии представляет собой таблицу, в которой перечислены элементы (группы событий), выполнение которых, составляет время отклика сессии. Например для сессии, производящей запрос к БД, профиль ресурсов сессии будет содержать событие разбора, исполнения, извлечения и ожидания чтения физических файлов БД. В эту таблицу также включены следующие характеристики: общее/макс./мин./сред. время ожидания/выполнения, количество обращений к элементу. Элементы профиля сессии отсортированы в порядке уменьшения вклада во время отклика сессии. Ниже приведен пример профиля ресурсов сессии в разрезе групп событий:
Более подробную информацию о принципах построения профиля ресурсов сессии вы можете найти в замечательной книге «Oracle Оптимизация производительности» авторы: Кэри Миллсап и Джефф Хольт («Optimizing Oracle Per formance» by Cary Millsap with Jeff Holt).
Где можно найти описание файла расширенной трассировки SQL Oracle ?
Основным документом описывающим содержимое файла расширенной трассировки Oracle является нота ID 39817.1, которую вы можете скачать с Oracle Metalink (http://metalink.oracle.com).
Где найти описание событий ожидания и рекомендации по их настройке ?
Очень хорошее описание вы можете найти в книге «Oracle Wait Interface: A Practical Guide to Performance Diagnostics & Tuning» by Richmond Shee, Kirtikumar Deshpande and K Gopalakrishnan или обратитесь к официальной документации Oracle: глава «Instance Tuning» в «Database Performance Tuning Guide and Reference» (для Oracle9i ), глава «Instance Tuning Using Performance Views» в «Oracle® Database Performance Tuning Guide» (для Oracle 10g/11g). Официальная документация находится в свободном доступе на сайте http://www.oracle.com.
Как включить/выключить трассировку сессии в Oracle ?
Трассировка сессии может быть включена следующими командами:
1) ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12';
2) EXEC SYS.DBMS_SYSTEM.SET_EV(SID,SERIAL#,10046,12,'');
Выключение трассировки производится аналогичным образом:
1) ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT OFF';
2) EXEC SYS.DBMS_SYSTEM.SET_EV(SID,SERIAL#,10046,0,'');
Предпочтительней использовать первый вариант, то есть включать трассировку внутри сессии, что позволяет избежать недостатка или избыточности данных в файле расширенной трассировки SQL. (Описание проблем при включении/выключении трассировки см. в книге «Oracle Оптимизация производительности» авторы: Кэри Миллсап и Джефф Хольт).
Какой уровень трассировки использовать ?
Существуют следующие уровни трассировки псевдо-события 10046:
Использование определенного уровня зависит от решаемой задачи. В своей практике я использую 12 уровень для определения ошибок SQL/ PLSQL при выполнении запросов и 8 для определения не оптимального SQL.
Где найти файлы расширенной трассировки SQL Oracle ?
Файлы расширенной трассировки SQL генерируются на сервере БД Oracle. Их расположение определяется параметром USER_DUMP_DEST. Обычно к ФС сервера БД Oracle доступ есть только у АБД, так что Вы можете всегда обратиться к ним за помощью с включением трассировки и получением трассировочного файла :-).
Обратите внимание, что трассировочный файл может содержать конфиденциальные данные, такие как номера счетов, карт и т. п.
Сколько времени нужно собирать данные трассировки ?
Ответ простой — столько сколько нужно для проявления ошибки или выполнения итерации цикла. Например у пользователя возникает ошибка при выполнении расчетов, в таком случае, оптимальным будет сбор данных в промежутке между запуском пользователем расчета и появлением ошибки на экране. Если вы определяет не оптимальный SQL при обсчете набора данных, можно начать со сбора трассировки на одной итерации цикла. В случае определения не оптимального SQL при однократном расчете — лучше собрать данные от запуска задачи до получения ее результатов.
Какие ограничения и рекомендации имеются по работе с LightProfiler ?
1) Версия интерпретатора. Скрипты LightProfiler проходят тестирование на следующих версиях Python: 2.6.4, 2.7, 3.1. Если вы используете приложение в виде скриптов Python, воспользуйтесь более новой версией интерпретатора, это дает прирост в скорости работы приложения.
2) Размер трассировочных файлов. Тут нет ограничений, только необходимо учитывать, что размер файла влияет на время его обработки и размер построенного профиля. В моей работе для решения проблем было достаточно файлов до 100-150 МБ. Если вы планируете обрабатывать гигантские файлы, подумайте, все ли эти данные вам нужны. Также для ускорения работы и уменьшения размера результирующего профиля можно отключить такие параметры как генерация расширенных данных для событий, сбор распределений и карту событий.
Чем LightProfiler отличается от tkprof и trace analyzer ?
Ниже представлена сводная таблица, показывающая основные особенности приложений
Я не понимаю полученный профиль. Что делать ?
Если у Вас возник какой-либо вопрос, связанный с полученным профилем, или ошибка, напишите нам об этом. Для отправки сообщения, пожалуйста используйте страницу Контакты.
Я доработал исходный код или исправил ошибку в нем. Что дальше ?
Вы можете поделиться своей доработкой с другими людьми. Пришлите нам описание изменений используя страницу Контакты.
Когда будет сделана локализация на …......................... язык ?
Вы готовы взяться за перевод и имеете опыт подобной работы? Присылайте свои предложения через страницу Контакты.