ru_faq

ЧаВо

Что такое - файл расширенной трассировки 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:

  • 0 — данные не выводятся
  • 1 — вывод вызовов БД, планы выполнения, ошибки, маркера конца транзакции
  • 4 — добавлен вывод переменных связывания
  • 8 — добавлен вывод событий ожиданий
  • 12 — добавлен вывод переменных связывания и событий ожиданий

Использование определенного уровня зависит от решаемой задачи. В своей практике я использую 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 ?

Ниже представлена сводная таблица, показывающая основные особенности приложений

Я не понимаю полученный профиль. Что делать ?

Если у Вас возник какой-либо вопрос, связанный с полученным профилем, или ошибка, напишите нам об этом. Для отправки сообщения, пожалуйста используйте страницу Контакты.

Я доработал исходный код или исправил ошибку в нем. Что дальше ?

Вы можете поделиться своей доработкой с другими людьми. Пришлите нам описание изменений используя страницу Контакты.

Когда будет сделана локализация на …......................... язык ?

Вы готовы взяться за перевод и имеете опыт подобной работы? Присылайте свои предложения через страницу Контакты.