Транзакция ST12 описывается ниже в объеме, необходимом для анализа производительности программного кода. После запуска транзакции ST12 система выведет на экран диалоговое окно (Рис.1).
Рис.1 Диалоговое окно транзакции ST12
Ниже описываются используемые для анализа инструменты.
Выбор варианта анализа трассировки. Кнопка «ABAP trace» позволяет просматривать результаты трассировки, которые соответствуют результатам транзакции SE30, кнопка «Performance trace» - транзакции ST05.
Для анализа производительности используем вариант, как указан на рис 1 (выбраны ABAP trace, Performance Trace - SQL). Для запуска трассировки нажимаем кнопку «Execute/start trace».
После нажатия кнопки, переходим на начальный экран анализируемой программы. Задаем условия на селекционном экране. Выполняем программу.
Система выведет на экран результат трассировки (рис.2). Статус "свечка" означает, что результаты в процессе обработки, значок "галочка" означает, что результаты трассировки собраны. Обновляем в ожидании готовности.
Рис. 2
Выбираем трассировку и начинаем анализ.
Важно: Трассировку необходимо проводить от начала и до конца работы транзакции. Если прервать трассировку, результат не будет соответствовать действительности. Всегда выбирайте вариант транзакции такой, чтобы он отрабатывал менее чем за 20 минут. Через 20 минут SQL trace будет остановлен системой.
Для начала отсортируем таблицу по полю Net(%), чтобы выяснить, какие вызовы требуют большее количество времени. Анализ обычно проводиться для первых 2-4 тяжелых вызовов. Для дальнейшей оптимизации трассировку можно снова повторить.
В данном случае видно, что время выполнения программы 10 сек из них 9 сек тратиться на базу данных Database, и база данных самая низкая по производительности, т.к. ее работа связана с обращением к файловой системе, ABAP выполняется на сервере приложений, в оперативной памяти.
Необходимо вывести все строки трассировки. Обнаружено множество идентичных запросов, поэтому следующим шагом нужно суммировать результаты, меню Trace list - Summarize trace by SQL Statement.
В данном случае результат трассировки соответствует анализу в ABAP (Запросы к MAKT и VBAP в топе). Важной особенностью этой трассировки является анализ работы оптимизатора SQL запросов. Преобразованный из ABAP в специфичный SQL для базы данных запрос можно посмотреть по кнопке Expalain. В плане выполнения (execution plan) можно увидеть насколько оптимально простроен запрос. На основании плана можно оптимизировать запрос на уровне базы данных, например добавить индекс или применить database hits, если оптимизатор ошибочно строит запрос.
В данном примере видно, что запрос к таблице MAKT построен оптимально, и использует уникальный индекс MAKT~0. Как анализировать план выполнения можно почитать в ноте <766249>. В данном варианте анализа я не буду рассматривать SQL trace, т.к. анализ сводится у умению читать план выполнения запроса. Типовыми методами оптимизации SQL на уровне плана являются: добавление индексов; использование databse hints, применяется обычно, когда план запроса является не оптимальным; как вариант необходимо пересмотреть запрос в целом.
1. Тяжелый SQL запрос к таблице MAKT
Обнаружен тяжелый SQL запрос к таблице MAKT. Хотя сам план выполнения запроса построен оптимально, по результатам трассировки видно, что обращений к таблице MAKT было 16 тыс. раз. Дальнейший анализ показал, что обращение к таблице происходит в конструкции LOOP ... ENDLOOP.
LOOP AT it_vbak ASSIGNING <fs_vbak>.
SELECT SINGLE * FROM makt
Для прочтения полной версии статьи необходимо зайти как зарегистрированный пользователь.
Олег Точенюк (Рейтинг: 11279) 01:49, 25 марта 2013
Пока никому не понравилось
Николай Кронский (Рейтинг: 360)
Транзакция SAT, скорее, комплекс SE30 & ST05. Предназначена для быстрой оценки узких мест производительности отдельной транзакции.
Транзакция ST12 вкупе с STAD и DB02 - серьезный набор инструментов анализа производительности системы "для взрослых" :)
Пока никому не понравилось
Олег Точенюк (Рейтинг: 11279)
Пока никому не понравилось
Олег Точенюк (Рейтинг: 11279)
Пока никому не понравилось
Николай Кронский (Рейтинг: 360)
Пока никому не понравилось
Олег Точенюк (Рейтинг: 11279)
Пока никому не понравилось
Олег Башкатов (Рейтинг: 8245)
в 6.0 вроде как ST12 есть во всех пакетах.
и её даже развивают.
Правда, кажется, в Ehp7 программа уже не /SSA/STA.
Пока никому не понравилось
Олег Точенюк (Рейтинг: 11279)
Да как-то так, нету... Сам удивлен. В IDES-е есть такое дело,а тут нет...
Пока никому не понравилось
Олег Башкатов (Рейтинг: 8245)
Пока никому не понравилось
Олег Точенюк (Рейтинг: 11279)
Пока никому не понравилось