Назад | Перейти на главную страницу

Как вы профилируете базу данных Oracle?

Что я хотел бы сделать, так это зафиксировать все выборы, выполняемые в производственной базе данных Oracle, со всеми параметрами, используемыми в течение определенного периода времени.
Затем я бы повторно запустил все захваченные операторы в тестовой системе, чтобы убедиться, что внесенные в нее изменения улучшат производительность.

  1. Захват SQL, выполняющийся в производственной среде, в первую очередь интересен выборкой, а не вставкой и обновлением.

  2. Восстановить копию продукции на тестовом сервере

  3. Запустите захваченный SQL, записав затраченное время.

  4. Выполните настройку производительности, разделите таблицы на разделы и т. Д.

  5. Запустите записанный SQL, чтобы убедиться, что настройка производительности прошла успешно.

Возможен ли шаг 1 с Oracle, и если да, то как это делается? Захват должен выполняться для всех сеансов и должен захватывать параметры, используемые в запросах, т.е. для запроса select myfield from mytable, где someotherfield =: value мне нужно воспроизводить с фактическим значением, используемым для: value каждый раз, когда вызывается выбор .

Загляните в «Тестирование реальных приложений». Это дополнительный вариант для Oracle, но в основном он работает именно так, как вы описали.