Недавно я начал новый проект разработки в .net с oracle db. Я никогда раньше не использовал оракул, и я подумал, есть ли инструмент sqlprofiler как инструмент для oracle?Sqlprofiler for oracle
ответ
Лучший способ профилировать ваше приложение в Oracle - sql tracing. Строка sql дает вам, какие заявления выполнялось вашим приложением, прошедшее время для тех, для которых они ждали и сколько времени ожидали. Ссылка, которую я предоставил, - хорошее начало для чтения о трассировке sql.
Oracle обеспечивает SQLDeveloper, которая включает в себя EXPLAIN
инструментов и AUTOTRACE
инструментов и т.д.
P.S. TOAD приятно, если вы можете себе это позволить (по крайней мере, это был последний раз, когда я мог себе это позволить).
Связанный с профилированием, немного более общий, в том числе общий тюнинг производительности - Automatic Performance Statistics. Даже если вы не хотите его использовать, это даст вам представление о важных представлениях и событиях, связанных с производительностью системы.
В дополнение к расширенным SQL Trace и TKPROF вы можете профилировать код PL/SQL с помощью поставляемого Oracle пакета DBMS_PROFILER.
Задача с большинством встроенных функций отслеживания - это нагрузочная нагрузка, которую они налагают, что делает их нецелесообразными для круглосуточного мониторинга запросов высокопроизводительных критически важных производственных систем.
На рынке есть сторонние инструменты, которые также обеспечивают функциональность профиля/трассировки. Некоторые из этих инструментов также налагают нагрузку на систему на систему, и поэтому часто будут принимать только периодические снимки посредством опроса dbms; другие инструменты контролируют запросы к базе данных без вмешательства (так накладывают нуль/минимальную нагрузку на систему) и могут использоваться на основе «всегда на».
Вам необходимо определить, приемлема ли дополнительная рабочая нагрузка. Если это так, то переходите к родным возможностям или к более дешевым сторонним инструментам. Если вы работаете с высокой транзакцией, критически важной производственной системой, то посмотрите на инструменты, которые не являются навязчивыми.
Полное раскрытие информации: Я работаю для одного из поставщиков, которые предоставляют такие инструменты. Поставщики используют различные механизмы, чтобы гарантировать, что их мониторинг производительности не является навязчивым. Мы не открываем соединение с db и не опросим его каким-либо образом; вместо этого мы прислушиваемся к сетевому трафику, чтобы пассивно захватывать запросы и вычислять связанные показатели производительности (например, время реакции сервера, время ответа на запрос, время в оба конца и т. д.). Мы специализируемся на мониторинге транзакций с высокой транзакцией и большими объемами - где, цитируя блоггера, который я видел в другом месте, «вы не можете одометр замедлить машину». Подробнее о нас: http://www.exact-solutions.com/products/iwatch
Также обратите внимание на менеджера предприятия. В нем есть много удобных инструментов для динамического изучения и настройки вашего кода при его запуске. Он должен быть настроен вашим администратором базы данных.