Оптимизация доступа к данным в средах SAP при помощи Oracle Cost Based Optimizer (CBO)
Оптимизатор Oracle Cost Based Optimizer (CBO) может стать мощным средством определения наиболее эффективного способа доступа к данным, хранящимся в базе данных Oracle. Оптимизация доступа к данным основана на анализе затрат по ресурсам и выборе соответствующих индексов. В этой статье рассматриваются способы эффективного применения CBO для оптимизации доступа к данным, увеличения производительности базы данных и решения проблем с производительностью, которые могут возникать при исполнении SQL- операторов в средах SAP. Здесь также описываются параметры, используемые оптимизатором для выбора способа обращения к данным, прослеживается процесс принятия решения на основе модельных данных и демонстрируются важные методы поиска и устранения ошибок.
За последние несколько лет автор изучил множество претензий, связанных со снижением производительности системы из-за того, что оптимизатором CBO выбирались не самые быстрые или эффективные способы доступа к табличным данным. Зачастую обнаруживалось, что предоставляемая CBO статистика и настройки (как установленные по умолчанию, так и указанные администратором) недостаточны для выбора оптимального решения. В то же время, неудачное решение CBO может существенно повлиять на производительность базы данных и всей системы в целом. Например, решение о полном сканировании таблицы вместо использования избирательного индекса может привести к тому, что извлечение данных будет происходить в тысячу раз медленнее. Для оптимизации доступа к данным и повышения производительности базы данных необходимо понимание принципа действия CBO и знание способов решения проблем с производительностью, которые могут стать следствием работы этого оптимизатора.
Эта статья предназначена для администраторов баз данных Oracle, занимающихся диагностикой проблем, связанных с медленным выполнением операторов Structured Query Language (SQL), а также для разработчиков SAP, стремящихся предотвратить потенциальное снижение производительности SQL в своих программах. Сначала рассматриваются настройки процесса и конфигурации, используемые CBO для определения способа доступа к данным. Затем описываются используемые при принятии решения факторы, процесс принятия решения прослеживается на примере модельных данных, а также объясняется, почему оптимизатор CBO иногда выдает неожиданные результаты. Кроме того, в этой статье приведены основные приемы диагностирования и устранения проблем с производительностью. Особое внимание уделено проблемам, которые могут возникнуть в средах SAP.
Внимание! Эта статья рассчитана на читателей, имеющих опыт анализа SQL-операторов в Oracle и знакомых с решением Oracle Cost Based Optimizer (CBO). |
Оформите подписку sappro и получите полный доступ к материалам SAPPRO
Оформить подпискуУ вас уже есть подписка?
Войти
Обсуждения 2
Комментарий от
Игорь Полушкин
| 07 июля 2010, 13:01
Комментарий от
Сергей Передовой
| 23 июля 2010, 16:23