20.10.2008, 17:22 | #1 |
Участник
|
Анализ производительности при работе с Oracle
А кто-нибудь пробовал оптимизировать производительность операций Axapta используя файлы трассировки Oracle?
Вот здесь http://expl0rer.wordpress.com/2008/09/30/ax_ora_trace/ я нашел методику, которая позволяет получить трейс файл, но открытым остается вопрос его обработки. Данных там много и найти узкие места затруднительно. Может у кого-то есть готовые скрипты, анализирующие эти файлы и наглядно отображающие проблемы? |
|
20.10.2008, 17:58 | #2 |
Участник
|
Потянуло на поиски "философского булыжника" ?
|
|
20.10.2008, 21:02 | #3 |
Участник
|
На sql.ru где-то были ссылки на разбор этого файла.
Насколько я понимаю он нормально не документирован и там автором была попытка представить свою версию как правильно данные в нем понимать. |
|
20.10.2008, 23:05 | #4 |
Роман Долгополов (RDOL)
|
Есть очень неплохая книга "Oracle оптимизация производительности". Если Вы в самом деле занялись поиском "филосовского булыжника" то читать обязательно. Даже если не занялись, то все равно читать обязательно, но главы с техническими подробносятми можно пропустить
http://www.ozon.ru/context/detail/id/2512023/ Авторы книги являются по совместительству и авторами одной из версий искомого "булыжника". Сайт http://www.hotsos.com/ И хотя одной их основных целей написания книги несомненно были реклама своей компании и своего волшебного средства от тормозов оракловых систем, но это ничуть не уменьшает ценность изложенного в ней материала |
|
21.10.2008, 10:33 | #5 |
MCITP
|
Есть специальная Оракловая утилита для представления содержимого трэйс файлов в "удобоваримом" виде. В документации по Оракл подробно описана.
Называется TKProf
__________________
Zhirenkov Vitaly |
|
21.10.2008, 11:21 | #6 |
Участник
|
Цитата:
Есть специальная Оракловая утилита для представления содержимого трэйс файлов в "удобоваримом" виде. В документации по Оракл подробно описана.
|
|
21.10.2008, 11:32 | #7 |
MCITP
|
Если бы ВЫ внимательно прочитали документацию в приведённой мною ссылке (в частности про параметры, имеющиеся у данной утилиты) то ВАШ вопрос был бы снят.
__________________
Zhirenkov Vitaly |
|
21.10.2008, 11:44 | #8 |
Участник
|
На форумах принято общение на ТЫ, за исключением случаев, когда хочется задеть собеседника, поэтому я продолжу в том же духе
Так вот, про параметр sort я знаю, но я не готов назвать параметр, по которому нужно фильтровать запросы, дабы получить узкие места моей системы. Ты знаешь такой параметр? Мне бы хотелось скорее некий скрипт, который на основе этого файла сгенерит набор графиков - по которым я уже смогу что-то сказать. |
|
21.10.2008, 11:59 | #9 |
MCITP
|
Цитата:
Сообщение от axbegin
На форумах принято общение на ТЫ, за исключением случаев, когда хочется задеть собеседника, поэтому я продолжу в том же духе
Так вот, про параметр sort я знаю, но я не готов назвать параметр, по которому нужно фильтровать запросы, дабы получить узкие места моей системы. Ты знаешь такой параметр? Мне бы хотелось скорее некий скрипт, который на основе этого файла сгенерит набор графиков - по которым я уже смогу что-то сказать. А лезть в чужой монастырь... ну как говорится, вы поняли Какие использовать параметры? В зависимоти от того, с чем у вас проблемы, я вашей системы не знаю. Обычно проблемы - это ЦПУ и физические чтения, но вам должно быть известнее от чего страдает конкретно ваша система. Либо как вариант поместить результаты в таблицу (см. "TKPROF_TABLE") и используя различные сортировки искать проблемы. "некоего скрипт, который на основе этого файла сгенерит набор графиков" скорее всего не существует, по крайней мере я о нём ничего не слышал.
__________________
Zhirenkov Vitaly |
|
21.10.2008, 12:00 | #10 |
Участник
|
Цитата:
Не знаю, как на других форумах, которые Вы посищаете, но на этом форуме люди обращаются друг-к-другу на Вы из уважения к собеседнику. На Ты общаются здесь только с теми, кого долго знают, в том числе чаще всего лично знакомы. |
|
22.10.2008, 22:21 | #11 |
Moderator
|
Если нужны именно красивые графики - смотри в сторону AWR (Automatic Workload Repository). Судя по твоим вопросам он тебе больше подходит, а у trace-файлов предназначение несколько иное.
Вот только AWR появился в 10g, кажется. А может и в 9-ке был - уже не помню. |
|
|
За это сообщение автора поблагодарили: axbegin (1). |
23.10.2008, 10:39 | #12 |
Участник
|
А можно поподробнее про эту штуку и как она мне может помочь ?
|
|
23.10.2008, 18:55 | #13 |
MCITP
|
Цитата:
Цитата:
А можно поподробнее про эту штуку и как она мне может помочь ?
Если в 2-х словах, то это встроенный тул оракловый который собирает статистику по производительности оракла и "даёт" рекомендации по его настройке и оптимизации. Всё это в 10-ке сделано более менее автоматически, без необходимости сильно глубоких знаний, настроек и с более-менее юзер-френдли интерфейсом в лице Enterprise Manager-a. Подробности смотрите тут: AWR & ADDM Или лучше даже начать вот отсюда: Для начинающих
__________________
Zhirenkov Vitaly |
|
|
За это сообщение автора поблагодарили: axbegin (1). |
23.10.2008, 22:57 | #14 |
Moderator
|
Ну, на первом этапе проще это воспринимать как набор, внутренних по отношению в Oracle, счетчиков (perfomance counters). Чтобы понять нужная ли это вам тулза - поищите в google скриншоты - думаю станет более - меннее понятно.
Ссылки на официальную документацию вам дал ZVV. Согласен, что читать много, но в общем то, вся документация Oracle страдает некоторой монструозностью. А точнее говоря, не хватает документов в стиле Quick Start. Ну, если коротко, то так: 1. Устанавливаем параметр STATISTICS_LEVEL в значение TYPICAL. Хотя, кажется он по умоланию такой. Но лучше проверить: X++: select statistics_name, activation_level from v$statistics_level; 3. Snapshots (снимки? не знаю рускоязычного аналога) - это просто набор характеристик вашей системы собранный в определенный момент времени и сохраненный в системных таблицах. Их можно собирать как вручную, так и автоматически. Автоматически - это как то так: X++: SQL> BEGIN 2 dbms_workload_repository.modify_snapshot_settings ( 3 retention => 21600, 4 interval => 30); 5 END; SQL> / PL/SQL procedure successfully completed. SQL> SELECT * from dba_hist_wr_control; Ручками - это так: X++: SQL> SELECT sys.dbms_workload_repository.create_snapshot() FROM dual; SYS.DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT() ---------------------------------------------- 453 SQL> SELECT snap_id id, begin_interval_time, 2 end_interval_time 3 FROM dba_hist_snapshot 4 WHERE snap_id > 450 SQL> / ID BEGIN_INTERVAL_TIME END_INTERVAL_TIME --- ------------------------- ------------------------- 451 .... 452 .... 453 .... SQL> EXEC dbms_workload_repository.drop_snapshot_range - > (200,250); SQL> BEGIN 2 dbms_workload_repository.create_baseline ( 3 start_snap_id => 426, 4 end_snap_id => 435, 5 baseline_name => 'ONLINE PEAK'); 6 END; 7 / PL/SQL procedure successfully completed. SQL> SELECT baseline_name, start_snap_time, end_snap_time FROM dba_hist_baseline; SQL> EXEC dbms_workload_repository.drop_baseline - > ('ONLINE PEAK'); Еще есть Automatic Database Diagnostic Monitor, как правильно заметил ZVV, который на основе собранных данных пытается давать советы, но с ним я не очень разбирался. Часть советов показались мне банальными и очевидными, а часть спорными и сомнительными Опять же проще работать через EM; если нет возможности - из консоли через системные вьюхи dba_advisor_*. Ну и самим "советчиком" можно рулить из консоли: X++: SQL> SELECT parameter_name, parameter_value 2 FROM dba_advisor_def_parameters 3 WHERE advisor_name = 'ADDM'; SQL> EXEC dbms_advisor.set_default_task_parameter ( - 'ADDM', 'DBIO_EXPECTED', 16000); PL/SQL procedure successfully completed. |
|
|
За это сообщение автора поблагодарили: ZVV (1), gl00mie (5). |
Теги |
oracle, performance, документация, производительность |
|
|