Oracle Database 11g: Настройка производительности - Глава 1: основные понятия

Oracle Database 11g Настройка производительности.

1. Основные понятия, необходимые Oracle DBA для настройки производительности экземпляра Oracle. 

Не для кого не секрет, что основной причиной падения производительности являются ошибки, допущенные при проектировании и разработке приложений. Проблемы с производительностью можно классифицировать следующим образом:
  • Проблемы на прикладном уровне (к ним относятся к примеру некорректно написаный SQL код, серилизация системных ресурсов, неправильное управление пользовательскими сессиями)
  • Проблемы с работой экземпляра (например проблемы с памятью, системой ввода/вывода или неправильной конфигурацией экземпляра баз данных Oracle)
  • Проблемы с операционной системой (например недостаточный или избыточный размер SWAP, проблемы с пропускной способностью систем хранения, некорректные настройки параметров операционной системы, проблемы с сетью, и.т.д.)
Существуют различные методы настройки производительности для OLTP систем (online transaction processing) и хранилищ данных (Data Warehouse). Иногда для настройки производительности требуются знания операционной системы, на которой работает база данных или помощь квалифицированного администратора.
Существует множество инструментов облегчающих задачу настройки производительности таких как Quest TOAD for DBA, Oracle Enterprise manager, FourthElephant Insider и.т.д, но все они используют одну методологию. В СУБД Oracle Enterprise Edition включены компоненты Oracle Diagnostic and tuning pack, инструменты которых такие как Automatic Database Diagnostic Monitor и Automatic Workload Repository существенно облегчают задачи настройки производительности. Для Oracle Database версии Standard корпорация предлагает пользоваться более ограниченным statspack, позже я расскажу как включить Diagnostics and Tuining pack в версии Standard. Все перечисленные инструменты построены на динамических представлениях производительности, статистике и метриках, собираемых экземпляром баз данных Oracle. О них также пойдет речь позже.

Методика настройки производительности
Данная методика разработана корпорацией Oracle и основана на многолетнем опыте диагностики и устранения проблем с производительностью систем управления базами данных. Она должна применяться вне зависимости от инструментов, которыми вы пользуетесь в процессе настройки производительности и заключается в следующем: 
  • Перед тем как приступать к настройке производительности БД, проверьте показатели операционной системы и исправность компонентов оборудования.
  • Определите ожидаемый конечный результат настройки производительности. Результат должен быть измерим. (Например сокращение времени выполнения SQL запроса вдвое или на 2 секунды)
  • Настройка производительности должна начинаться с прикладного уровня и заканчиваться настройкой экземпляра. (Чаще всего проблемы с производительностью вызваны неправильной работой приложения, взаимодействующего с БД) К примеру перед тем как лезть в настройки системы ввода/вывода или переносить табличные пространства на более быстрый носитель, в случае возникновения проблем, выявите запросы, выполняющие массированное полное сканирование таблиц (full table scan). Дизайн и архитектура приложения должна соответствовать типу нагрузки. Например реверсный индекс может быть отличным решением для устранения "горячих блоков" на кластерной базе данных, связанных с последовательным выделением первичного ключа, но в тоже время реверсный индекс может вызвать массированную передачу данных по interconnct кластерного экземпляра в случае вставки большого объема данных в эту таблицу с разных узлов кластера. При  проектировании приложений должна исключаться сериализация данных и процессов. Простым примером сериализации процессов является генератор чисел, используемый сразу несколькими процедурами и функциями в приложении. Исправить ошибки допущенные в процессе проектирования приложения чаще всего очень сложно или вовсе невозможно.
  • Настраивайте область с наиболее весомым потенциальным приростом производительности. Идентифицируйте наиболее ресурсоемкие проблемы производительности и устраните их. Для идентификации проблемных областей все инструменты базы данных Oracle используют значение показателя "время базы данных" (DB time). О "Времени базы данных" я также расскажу позже. В базе даных Oracle существует временная модель для автоматизации идентификации основных проблем производительности.
  • После достижения ожидаемого конечного результата от настройки производительности ОСТАНОВИТЕСЬ! (Выражение "совершенству нет предела" не применимо в данном случае) 
В идеальной ситуации в процесс проектирования приложений, работающих с базой данных Oracle должны быть вовлечены люди, глубоко разбирающиеся в настройке производительности БД и принципах ее работы. К сожалению так бывает далеко не всегда. Для предупреждения проблем с производительностью систем на всех этапах разработки приложений должно проводиться тестирование, включающее в себя сценарии максимально приближенные к действительности. Это позволит исключить проблемы в работе приложения в будущем.



Комментариев нет:

Отправить комментарий