Наша база данных Oracle (11g) внезапно стала очень медленной. Я не знаю, где начать процесс отладки, чтобы выяснить, в чем на самом деле проблема?
Я пробовал генерировать статистику таблиц и искал блокировки .. но я не могу найти никакой информации, которая указывает мне непосредственно на причину, или, возможно, я смотрю не в том месте ..
Пожалуйста, посоветуй мне, с чего начать ..
Что ж, я определю что Медленно :)
Вставки занимают чертовски много времени .. даже вставка 100000 записей занимает около часа
Сначала я бы посмотрел на сервер базы данных, чтобы узнать, есть ли какие-либо узкие места - например, диск, сеть, процессор, память. Если есть основная проблема с оборудованием, это может привести вас к ней. Но если есть проблема с приложением, это, скорее всего, покажет вам результат, но не причину.
Самый тщательный способ решить проблему производительности Oracle - это выполнить расширенную трассировку SQL одного или нескольких медленных сеансов, профилировать их и посмотреть, где они на самом деле проводят свое время. Отличным источником информации об этом является книга Кэри Миллсэпа, которую вы можете увидеть в первой главе. Вот.
Но менее полный способ просмотра той же информации - просто запросить словарь данных, чтобы увидеть, каких событий ожидают медленные сеансы. В случаях, когда что-то сильно не так, это часто так же эффективно, как и полная трассировка. Я бы начал с выполнения этого запроса несколько раз и посмотрел, к чему он вас приведет:
select seq#, event, wait_time, seconds_in_wait, state
from v$session
where type='USER'
;
Другой подход к сбору подобной информации: Сценарий Snapper Танеля Подера
Если какое-то время что-то работает отлично и ничего серьезного не изменилось (например, увеличилось использование, модифицированные индексы, сложная отчетность, аналитическая обработка и т.
Я бы начал с проверки работоспособности и производительности вашего оборудования / физических дисков.
Честно говоря, это довольно широкий вопрос, и есть много неизвестных ... но поскольку ваш конкретный вопрос - с чего мне начать. Вот с чего я бы начал.
Вообще говоря, начиная с верхнего уровня, последовательно разбивают, где тратится время. В какой-то момент вы должны достичь уровня, на котором вы будете видеть слишком много времени, которое не должно быть.
Для получения более подробной информации я настоятельно рекомендую статью Кэри Миллсапа. Ясное мышление о производительности.
Посмотрите эту ссылку: http://www.dba-oracle.com/t_top_reasons_poor_performance.htm
Вы лицензировали Oracle Diagnostic Pack? Если да, у вас есть доступ к нескольким полезным инструментам: ADDM (автоматический диагностический монитор) и AWR (автоматический репозиторий рабочей нагрузки). Отчеты AWR поначалу могут быть трудными для понимания, но они могут дать бесценную информацию о том, что на самом деле происходит в базе данных.
Если у вас нет пакета диагностики, вы все равно будете иметь доступ к просмотрам истории активных сеансов.
Вы используете 11g, это означает, что вы можете запустить «Управление БД», это ограниченная версия Enterprise Manager (или, может быть, у вас есть полностью лицензированный Enterprise Manager). DB Control предоставляет веб-интерфейс, он, помимо прочего, позволяет вам видеть информацию, связанную с производительностью, собирает много полезной информации. Опять же, есть чему поучиться, но если есть проблемы с производительностью, беглый взгляд на вкладку «Производительность» уже может дать много информации.
С уважением